import type { FieldDefinition } from '../config/types.js';
export interface FieldTypeDefinition {
    type: FieldDefinition['type'];
    label: string;
    icon?: string;
    defaultConfig: Partial<FieldDefinition>;
    validate?: (value: unknown, field: FieldDefinition) => string | true;
    serialize?: (value: unknown) => unknown;
    deserialize?: (value: unknown) => unknown;
}
/** Built-in field type definitions keyed by type discriminator. */
export declare const BUILT_IN_FIELDS: Record<string, FieldTypeDefinition>;
export declare function getFieldType(type: string): FieldTypeDefinition | undefined;
export declare function getAllFieldTypes(): FieldTypeDefinition[];
export { titleField, slugField, pagePathField, excerptField, richContentField, featuredImageField, categoryField, tagsField, publishedDateField, authorField, quoteField, ctaField, seoFields, locationFields, geoFields, priceFields, relationField, relatedDocsField, } from './presets.js';
export { collectRelationRefs, validateRelations, populateRelations, parsePopulateParam, } from './relations.js';
export type { RelationLookup, RelationSummary, PopulateOptions } from './relations.js';
export type { CategoryOption } from './presets.js';
//# sourceMappingURL=index.d.ts.map