import { z } from 'zod';
export declare const PageMappingSchema: z.ZodObject<{
    pageNumber: z.ZodNumber;
    startChar: z.ZodNumber;
    endChar: z.ZodNumber;
}, z.core.$strip>;
export type PageMapping = z.infer<typeof PageMappingSchema>;
export declare const StructureNodeSchema: z.ZodType<StructureNode>;
export interface StructureNode {
    nodeId: string;
    title: string;
    level: number;
    startChar: number;
    endChar: number;
    startLine: number;
    startPage?: number;
    endPage?: number;
    parentNodeId?: string;
    structureCode?: string;
    wordCount?: number;
    tokenEstimate?: number;
    children: StructureNode[];
}
export declare const DocumentStructureSchema: z.ZodObject<{
    rootNodes: z.ZodArray<z.ZodType<StructureNode, unknown, z.core.$ZodTypeInternals<StructureNode, unknown>>>;
    pageMappings: z.ZodArray<z.ZodObject<{
        pageNumber: z.ZodNumber;
        startChar: z.ZodNumber;
        endChar: z.ZodNumber;
    }, z.core.$strip>>;
    totalNodes: z.ZodNumber;
    maxDepth: z.ZodNumber;
}, z.core.$strip>;
export type DocumentStructure = z.infer<typeof DocumentStructureSchema>;
export declare function flatten(nodes: StructureNode[]): StructureNode[];
export declare function getNodeById(nodes: StructureNode[], nodeId: string): StructureNode | undefined;
export declare function getNodeByPath(nodes: StructureNode[], structureCode: string): StructureNode | undefined;
export declare function toDict(structure: DocumentStructure): Record<string, unknown>;
export declare function fromDict(data: Record<string, unknown>): DocumentStructure;
