import { Injector } from 'graphql-modules';
import type { IGetAllDocumentsResult } from '../types.js';
export declare function validateDocumentVat(document: IGetAllDocumentsResult, vatValue: number, onError: (message: string) => void, requireVat?: boolean): boolean;
export declare function validateDocumentAllocation(document: IGetAllDocumentsResult, injector: Injector): Promise<boolean>;
export declare function basicDocumentValidation(document: IGetAllDocumentsResult): boolean | "" | null;
/** result of a single validation check */
export type DocumentValidationCheck = {
    isValid: boolean;
    message: string | null;
};
/** aggregated validation info combining all document validations */
export type DocumentValidationInfo = {
    documentId: string;
    isValid: boolean;
    issues: string[];
    basicValidation: DocumentValidationCheck;
    vatValidation: DocumentValidationCheck;
    allocationValidation: DocumentValidationCheck;
};
/**
 * Runs all document validations (basic required-fields, VAT and allocation) and
 * combines them into a single informative response.
 */
export declare function getDocumentValidationInfo(document: IGetAllDocumentsResult, injector: Injector): Promise<DocumentValidationInfo>;
