export interface FieldConfig {
    type: 'string' | 'number' | 'boolean' | 'array' | 'object';
    required?: boolean;
    description?: string;
    enum?: string[];
    items?: FieldConfig;
    properties?: Record<string, FieldConfig>;
    minimum?: number;
    maximum?: number;
}
export interface DocumentTypeConfig {
    name: string;
    description: string;
    enabled: boolean;
    fields: Record<string, FieldConfig>;
    prompt?: {
        classification?: string;
        extraction?: string;
        guidelines?: string[];
    };
}
export interface SchemaConfiguration {
    version: string;
    globalPrompt: {
        basePrompt: string;
        classification: string;
        guidelines: string[];
    };
    documentTypes: Record<string, DocumentTypeConfig>;
}
export declare class SchemaManager {
    private config;
    private configPath;
    constructor(configPath?: string);
    private loadConfiguration;
    private validateConfiguration;
    saveConfiguration(): void;
    getConfiguration(): SchemaConfiguration;
    getDocumentTypes(): string[];
    getDocumentTypeConfig(typeName: string): DocumentTypeConfig | null;
    generateJSONSchema(): object;
    private convertFieldConfigToJSONSchema;
    generateAnalysisPrompt(): string;
    generateDatabaseSchema(): string[];
    private getSQLType;
    private getTableName;
    addDocumentType(config: DocumentTypeConfig): void;
    updateDocumentType(typeName: string, updates: Partial<DocumentTypeConfig>): void;
    removeDocumentType(typeName: string): void;
    updateGlobalPrompt(updates: Partial<SchemaConfiguration['globalPrompt']>): void;
    private getDefaultConfiguration;
}
declare let schemaManager: SchemaManager;
export { schemaManager };
