/**
 * AI Output to Plate.js Value Converter
 *
 * Converts AI structured output (conforming to plate-editor-openai-schema.json)
 * to Plate.js document format (Value array).
 *
 * Since the AI schema is designed to directly match Plate.js element structure,
 * the conversion is primarily validation and pass-through with cleanup of null values.
 */
/** AI structured output root shape */
export interface AIDocumentOutput {
    title: string;
    description: string;
    assumptions?: string[] | null;
    warnings?: string[] | null;
    document: PlateBlockElement[];
}
/** Supported block element types */
type PlateBlockType = 'p' | 'h1' | 'h2' | 'h3' | 'blockquote' | 'code_block' | 'table' | 'callout' | 'toggle' | 'column_group' | 'img' | 'video' | 'audio' | 'media_embed' | 'equation' | 'hr' | 'toc';
/** Generic block element from AI output */
interface PlateBlockElement {
    type: PlateBlockType;
    children: unknown[];
    [key: string]: unknown;
}
/**
 * Convert AI structured output to Plate.js Value (document array).
 *
 * The AI output document array already matches Plate.js format, so this
 * function validates the structure and cleans up null/undefined values
 * that the AI might produce from optional schema fields.
 *
 * @param output - AI structured output conforming to the schema
 * @returns Plate.js Value array ready to be used as editor content
 */
export declare function aiOutputToPlate(output: AIDocumentOutput): unknown[];
/**
 * Validate that an unknown value conforms to the AIDocumentOutput structure.
 *
 * @param output - Unknown value to validate
 * @returns Type predicate indicating valid AIDocumentOutput
 */
export declare function isValidPlateOutput(output: unknown): output is AIDocumentOutput;
/**
 * Extract metadata from AI output (title, description, assumptions, warnings).
 * Useful for displaying document info in the UI without parsing the full document.
 *
 * @param output - AI structured output
 * @returns Metadata object
 */
export declare function extractMetadata(output: AIDocumentOutput): {
    title: string;
    description: string;
    assumptions: string[];
    warnings: string[];
};
export {};
