export interface ValidationIssue {
    field: string;
    severity: "error" | "warning" | "info";
    message: string;
    suggested?: string;
}
export declare function validateDate(field: string, value: string | undefined, allowFuture?: boolean): ValidationIssue | null;
export declare function validateCasNo(field: string, value: string | undefined): ValidationIssue | null;
export declare function validateHCode(field: string, value: string | undefined): ValidationIssue | null;
export declare function validatePCode(field: string, value: string | undefined): ValidationIssue | null;
export declare function validateUnNo(field: string, value: string | undefined): ValidationIssue | null;
export declare function validateExposureLimit(field: string, value: string | undefined): ValidationIssue | null;
export declare function validateApprovalChain(field: string, chain: Array<{
    role: string;
    name: string;
    signed?: boolean;
    date?: string;
}> | undefined): ValidationIssue[];
export interface ValidationReport {
    errors: ValidationIssue[];
    warnings: ValidationIssue[];
    info: ValidationIssue[];
    summary: {
        total: number;
        errors: number;
        warnings: number;
    };
}
export declare function buildReport(issues: ValidationIssue[]): ValidationReport;
type SectionField = {
    key: string;
    label?: string;
    required?: boolean;
};
type DocSection = {
    title?: string;
    fields?: SectionField[];
};
export declare function validateDocumentInput(_docId: string, draft: Record<string, unknown> & {
    metadata?: {
        planDate?: string;
    };
    approvalChain?: Array<{
        role: string;
        name: string;
        signed?: boolean;
        date?: string;
    }>;
    sections?: Record<string, Record<string, unknown>>;
}, docDef?: {
    requiredFields?: Array<{
        key: string;
        label: string;
        source?: string;
    }>;
    sections?: DocSection[];
}): ValidationReport;
export {};
//# sourceMappingURL=input-validator.d.ts.map