declare module "astro:content" { interface Render { ".mdx": Promise<{ Content: import("astro").MarkdownInstance<{}>["Content"]; headings: import("astro").MarkdownHeading[]; remarkPluginFrontmatter: Record; components: import("astro").MDXInstance<{}>["components"]; }>; } } declare module "astro:content" { export interface RenderResult { Content: import("astro/runtime/server/index.js").AstroComponentFactory; headings: import("astro").MarkdownHeading[]; remarkPluginFrontmatter: Record; } interface Render { ".md": Promise; } export interface RenderedContent { html: string; metadata?: { imagePaths: Array; [key: string]: unknown; }; } } declare module "astro:content" { type Flatten = T extends { [K: string]: infer U } ? U : never; export type CollectionKey = keyof AnyEntryMap; export type CollectionEntry = Flatten< AnyEntryMap[C] >; export type ContentCollectionKey = keyof ContentEntryMap; export type DataCollectionKey = keyof DataEntryMap; type AllValuesOf = T extends any ? T[keyof T] : never; type ValidContentEntrySlug = AllValuesOf< ContentEntryMap[C] >["slug"]; export type ReferenceDataEntry< C extends CollectionKey, E extends keyof DataEntryMap[C] = string, > = { collection: C; id: E; }; export type ReferenceContentEntry< C extends keyof ContentEntryMap, E extends ValidContentEntrySlug | (string & {}) = string, > = { collection: C; slug: E; }; export type ReferenceLiveEntry< C extends keyof LiveContentConfig["collections"], > = { collection: C; id: string; }; /** @deprecated Use `getEntry` instead. */ export function getEntryBySlug< C extends keyof ContentEntryMap, E extends ValidContentEntrySlug | (string & {}), >( collection: C, // Note that this has to accept a regular string too, for SSR entrySlug: E, ): E extends ValidContentEntrySlug ? Promise> : Promise | undefined>; /** @deprecated Use `getEntry` instead. */ export function getDataEntryById< C extends keyof DataEntryMap, E extends keyof DataEntryMap[C], >(collection: C, entryId: E): Promise>; export function getCollection< C extends keyof AnyEntryMap, E extends CollectionEntry, >( collection: C, filter?: (entry: CollectionEntry) => entry is E, ): Promise; export function getCollection( collection: C, filter?: (entry: CollectionEntry) => unknown, ): Promise[]>; export function getLiveCollection< C extends keyof LiveContentConfig["collections"], >( collection: C, filter?: LiveLoaderCollectionFilterType, ): Promise< import("astro").LiveDataCollectionResult< LiveLoaderDataType, LiveLoaderErrorType > >; export function getEntry< C extends keyof ContentEntryMap, E extends ValidContentEntrySlug | (string & {}), >( entry: ReferenceContentEntry, ): E extends ValidContentEntrySlug ? Promise> : Promise | undefined>; export function getEntry< C extends keyof DataEntryMap, E extends keyof DataEntryMap[C] | (string & {}), >( entry: ReferenceDataEntry, ): E extends keyof DataEntryMap[C] ? Promise : Promise | undefined>; export function getEntry< C extends keyof ContentEntryMap, E extends ValidContentEntrySlug | (string & {}), >( collection: C, slug: E, ): E extends ValidContentEntrySlug ? Promise> : Promise | undefined>; export function getEntry< C extends keyof DataEntryMap, E extends keyof DataEntryMap[C] | (string & {}), >( collection: C, id: E, ): E extends keyof DataEntryMap[C] ? string extends keyof DataEntryMap[C] ? Promise | undefined : Promise : Promise | undefined>; export function getLiveEntry< C extends keyof LiveContentConfig["collections"], >( collection: C, filter: string | LiveLoaderEntryFilterType, ): Promise< import("astro").LiveDataEntryResult< LiveLoaderDataType, LiveLoaderErrorType > >; /** Resolve an array of entry references from the same collection */ export function getEntries( entries: ReferenceContentEntry>[], ): Promise[]>; export function getEntries( entries: ReferenceDataEntry[], ): Promise[]>; export function render( entry: AnyEntryMap[C][string], ): Promise; export function reference( collection: C, ): import("astro/zod").ZodEffects< import("astro/zod").ZodString, C extends keyof ContentEntryMap ? ReferenceContentEntry> : ReferenceDataEntry >; // Allow generic `string` to avoid excessive type errors in the config // if `dev` is not running to update as you edit. // Invalid collection names will be caught at build time. export function reference( collection: C, ): import("astro/zod").ZodEffects; type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; type InferEntrySchema = import("astro/zod").infer< ReturnTypeOrOriginal["schema"]> >; type ContentEntryMap = {}; type DataEntryMap = { blog: Record< string, { id: string; body?: string; collection: "blog"; data: InferEntrySchema<"blog">; rendered?: RenderedContent; filePath?: string; } >; }; type AnyEntryMap = ContentEntryMap & DataEntryMap; type ExtractLoaderTypes = T extends import("astro/loaders").LiveLoader< infer TData, infer TEntryFilter, infer TCollectionFilter, infer TError > ? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError; } : { data: never; entryFilter: never; collectionFilter: never; error: never; }; type ExtractDataType = ExtractLoaderTypes["data"]; type ExtractEntryFilterType = ExtractLoaderTypes["entryFilter"]; type ExtractCollectionFilterType = ExtractLoaderTypes["collectionFilter"]; type ExtractErrorType = ExtractLoaderTypes["error"]; type LiveLoaderDataType = LiveContentConfig["collections"][C]["schema"] extends undefined ? ExtractDataType : import("astro/zod").infer< Exclude >; type LiveLoaderEntryFilterType< C extends keyof LiveContentConfig["collections"], > = ExtractEntryFilterType; type LiveLoaderCollectionFilterType< C extends keyof LiveContentConfig["collections"], > = ExtractCollectionFilterType< LiveContentConfig["collections"][C]["loader"] >; type LiveLoaderErrorType = ExtractErrorType; export type ContentConfig = typeof import("../src/content.config.js"); export type LiveContentConfig = never; }