/**
 * Template Binding Validation
 *
 * Validates template block bindings against block manifests and content type schemas.
 */
import { type TemplateBlockConfig, type FieldDefinition } from './content-types';
/**
 * Validation error with context about where the error occurred.
 */
export interface TemplateValidationError {
    /** Block identifier where the error occurred */
    blockIdentifier: string;
    /** Field key in bindings where the error occurred (if applicable) */
    fieldKey?: string;
    /** Error message */
    message: string;
    /** Error type for categorization */
    type: 'invalid_binding_key' | 'invalid_field_path' | 'invalid_block_kind';
}
/**
 * Block manifest lookup function type.
 * This allows injection of the manifest lookup for testing and flexibility.
 */
export type GetBlockManifest = (kind: string) => {
    fields?: FieldDefinition[];
} | undefined;
/**
 * Validate template bindings against block schemas and content type fields.
 *
 * @param blocks - Template blocks to validate
 * @param contentTypeFields - Content type field definitions for path validation
 * @param getBlockManifest - Function to retrieve block manifest by kind
 * @returns Array of validation errors
 */
export declare function validateTemplateBindings(blocks: TemplateBlockConfig[], contentTypeFields: FieldDefinition[], getBlockManifest: GetBlockManifest): TemplateValidationError[];
/**
 * Format validation errors as strings for display.
 */
export declare function formatValidationErrors(errors: TemplateValidationError[]): string[];
