import { ObjectField, ValueForComponentSchema, ComponentSchema } from './DocumentEditor/component-blocks/api'; export type DataFormat = 'json' | 'yaml'; export type Format = DataFormat | { frontmatter: DataFormat; contentField: string; }; export type Collection> = { label: string; directory?: string; directorySuffix?: string; format?: Format; getItemSlug: (value: ValueForComponentSchema>) => string; schema: Schema; }; export type Singleton> = { label: string; directory?: string; format?: Format; schema: Schema; }; export type GitHubConfig>; } = { [key: string]: Collection>; }, Singletons extends { [key: string]: Singleton>; } = { [key: string]: Singleton>; }> = { storage: { kind: 'github'; repo: { owner: string; name: string; }; }; collections?: Collections; singletons?: Singletons; }; export type LocalConfig>; } = { [key: string]: Collection>; }, Singletons extends { [key: string]: Singleton>; } = { [key: string]: Singleton>; }> = { storage: { kind: 'local'; }; collections?: Collections; singletons?: Singletons; }; export type Config>; } = { [key: string]: Collection>; }, Singletons extends { [key: string]: Singleton>; } = { [key: string]: Singleton>; }> = GitHubConfig | LocalConfig; export declare function config; }, Singletons extends { [key: string]: Singleton>; }>(config: Config): Config; export declare function collection>(collection: Collection): Collection; export declare function singleton>(collection: Singleton): Singleton;