import type * as zCore from 'zod/v4/core'; import type * as z from 'zod/v4'; import type { LiveLoader, Loader } from './loaders/types.js'; type ImageFunction = () => z.ZodObject<{ src: zCore.$ZodString; width: zCore.$ZodNumber; height: zCore.$ZodNumber; format: zCore.$ZodUnion<[ zCore.$ZodLiteral<'png'>, zCore.$ZodLiteral<'jpg'>, zCore.$ZodLiteral<'jpeg'>, zCore.$ZodLiteral<'tiff'>, zCore.$ZodLiteral<'webp'>, zCore.$ZodLiteral<'gif'>, zCore.$ZodLiteral<'svg'>, zCore.$ZodLiteral<'avif'> ]>; }>; export interface DataEntry { id: string; data: Record; filePath?: string; body?: string; } export interface DataStore { get: (key: string) => DataEntry; entries: () => Array<[id: string, DataEntry]>; set: (key: string, data: Record, body?: string, filePath?: string) => void; values: () => Array; keys: () => Array; delete: (key: string) => void; clear: () => void; has: (key: string) => boolean; } export interface MetaStore { get: (key: string) => string | undefined; set: (key: string, value: string) => void; delete: (key: string) => void; has: (key: string) => boolean; } export type BaseSchema = zCore.$ZodType; export type { ImageFunction }; export type SchemaContext = { image: ImageFunction; }; type LoaderConstraint = Loader | (() => Array | Promise> | Record & { id?: string; }> | Promise & { id?: string; }>>); type ContentLayerConfig> = { type?: 'content_layer'; schema?: S | ((context: SchemaContext) => S); loader: TLoader; }; type DataCollectionConfig = { type: 'data'; schema?: S | ((context: SchemaContext) => S); }; type ContentCollectionConfig = { type?: 'content'; schema?: S | ((context: SchemaContext) => S); loader?: never; }; export type LiveCollectionConfig = { type?: 'live'; schema?: S; loader: L; }; export type CollectionConfig = LoaderConstraint<{ id: string; }>> = ContentCollectionConfig | DataCollectionConfig | ContentLayerConfig; export declare function defineLiveCollection(config: LiveCollectionConfig): LiveCollectionConfig; export declare function defineCollection = LoaderConstraint<{ id: string; }>>(config: CollectionConfig): CollectionConfig;