import type { MarkdownHeading } from '@astrojs/markdown-remark'; export interface RenderedContent { /** Rendered HTML string. If present then `render(entry)` will return a component that renders this HTML. */ html: string; metadata?: { /** Any images that are present in this entry. Relative to the {@link DataEntry} filePath. */ imagePaths?: Array; /** Any headings that are present in this file. */ headings?: MarkdownHeading[]; /** Raw frontmatter, parsed parsed from the file. This may include data from remark plugins. */ frontmatter?: Record; /** Any other metadata that is present in this file. */ [key: string]: unknown; }; } export interface DataEntry = Record> { /** The ID of the entry. Unique per collection. */ id: string; /** The parsed entry data */ data: TData; /** The file path of the content, if applicable. Relative to the site root. */ filePath?: string; /** The raw body of the content, if applicable. */ body?: string; /** An optional content digest, to check if the content has changed. */ digest?: number | string; /** The rendered content of the entry, if applicable. */ rendered?: RenderedContent; /** * If an entry is a deferred, its rendering phase is delegated to a virtual module during the runtime phase when calling `renderEntry`. */ deferredRender?: boolean; assetImports?: Array; /** @deprecated */ legacyId?: string; } /** * A read-only data store for content collections. This is used to retrieve data from the content layer at runtime. * To add or modify data, use {@link MutableDataStore} instead. */ export declare class ImmutableDataStore { protected _collections: Map>; constructor(); get(collectionName: string, key: string): T | undefined; entries(collectionName: string): Array<[id: string, T]>; values(collectionName: string): Array; keys(collectionName: string): Array; has(collectionName: string, key: string): boolean; hasCollection(collectionName: string): boolean; collections(): Map>; /** * Attempts to load a DataStore from the virtual module. * This only works in Vite. */ static fromModule(): Promise; static fromMap(data: Map>): Promise; }