/**
 * Type compatibility matrix for content type fields → block manifest fields
 *
 * Defines which content field types can be safely bound to which block field types
 * without requiring transforms or causing runtime errors.
 */
import type { ContentFieldConfig } from '../content-types/schema';
export type ContentFieldType = ContentFieldConfig['type'];
export type BlockFieldType = 'text' | 'number' | 'slug' | 'url' | 'richText' | 'media' | 'boolean' | 'select' | 'reference' | 'link' | 'date' | 'datetime';
export type MetaFieldType = 'text' | 'date' | 'enum';
/**
 * Canonical meta-field registry.
 *
 * Single source of truth for "what entry meta fields exist and what content-field
 * type they resolve to". Other modules derive their meta-related tables from
 * this one to prevent the three-source-of-truth drift that previously existed
 * across `META_FIELD_COMPATIBILITY` (this file), `getAvailableFieldPaths`
 * (fieldPaths.ts), and `resolveMetaPathType` (bindingValidation.ts).
 */
export declare const META_FIELDS: {
    readonly title: "text";
    readonly slug: "text";
    readonly status: "text";
    readonly publishedAt: "date";
    readonly createdAt: "date";
    readonly updatedAt: "date";
};
/** Type of every known meta-field path. */
export type MetaFieldPath = keyof typeof META_FIELDS;
/** Set of all known meta-field keys, derived from {@link META_FIELDS}. */
export declare const META_FIELD_IDS: ReadonlySet<string>;
/**
 * Resolve a meta path to its content-field type. Returns `null` for unknown paths.
 *
 * Use this when validating bindings; the returned type participates in the
 * standard `isCompatibleBinding` matrix. For target-aware compatibility
 * (which adds aliases like `title → slug → url`), use
 * {@link isCompatibleMetaBinding}.
 */
export declare function resolveMetaFieldType(path: string): ContentFieldType | null;
/** Type guard narrowing `string` to the union of declared meta-field paths. */
export declare function isMetaFieldPath(path: string): path is MetaFieldPath;
/**
 * Check if a content field type is compatible with a block field type
 */
export declare function isCompatibleBinding(sourceType: ContentFieldType | MetaFieldType, targetType: BlockFieldType): boolean;
/**
 * Check if a meta field is compatible with a block field type
 */
export declare function isCompatibleMetaBinding(metaFieldName: string, targetType: BlockFieldType): boolean;
/**
 * Check if a nested path is compatible with a block field type
 */
export declare function isCompatibleNestedPath(parentType: ContentFieldType, nestedSuffix: string, targetType: BlockFieldType): boolean;
/**
 * Get compatible block field types for a given content field type
 */
export declare function getCompatibleBlockTypes(sourceType: ContentFieldType | MetaFieldType): BlockFieldType[];
/**
 * Get all compatible content field types for a given block field type (reverse lookup)
 */
export declare function getCompatibleContentTypes(targetType: BlockFieldType): ContentFieldType[];
