export declare type EnterpriseCallbackResponse<T> = {
    continueWithOnfidoSubmission?: boolean;
    onfidoSuccessResponse?: T;
};
export type Common = {
    sdk_metadata: string;
    sdk_source: string;
    sdk_version: string;
};
export type SubmitDocument = {
    file: Blob;
    side: DocumentSides;
    type: string;
    sdk_validations: string;
} & Common;
export type SubmitSelfie = {
    file: Blob;
    snapshot: {
        blob: Blob;
        filename: string;
    };
};
export type SubmitVideo = {
    file: Blob;
    challenge: string;
    challenge_id: string;
    challenge_switch_at: number | undefined;
    languages: string;
};
export declare type ImageQualityValidationTypes = 'detect_barcode' | 'detect_document' | 'detect_cutoff' | 'detect_glare' | 'detect_blur';
export declare type ImageQualityWarnings = Partial<Record<ImageQualityValidationTypes, {
    valid: boolean;
}>>;
export declare type UploadFileResponse = {
    id: string;
    created_at: string;
    file_name: string;
    file_type: string;
    file_size: number;
    href: string;
    download_href: string;
};
type Score = {
    min: number;
    max: number;
    threshold: number;
};
export declare type DocumentSides = 'front' | 'back';
export declare type DocumentType = 'driving_licence' | 'national_identity_card' | 'residence_permit' | 'passport';
export declare type DocumentImageResponse = {
    applicant_id: string;
    type: DocumentType;
    side: DocumentSides;
    issuing_country: string;
    sdk_warnings: ImageQualityWarnings & {
        image_quality: {
            quality: string;
            breakdown: {
                document: {
                    has_document: boolean;
                    detection_score: number;
                } & Score;
                has_document: boolean;
                cutoff: {
                    has_cutoff: boolean;
                    score: number;
                } & Score;
                blur: {
                    has_blur: boolean;
                    score: number;
                    blur_model: string;
                } & Score;
                glare: {
                    score: number;
                    bbox: [number, number, number, number];
                    has_glare: boolean;
                    threshold: number;
                    glare_model: string;
                };
                barcode: {
                    result: string;
                    properties: Record<string, string>;
                };
            };
            image_quality_uuid: string;
        };
    };
    classification: {
        issuing_country: null;
        document_version: null;
        side?: DocumentSides;
        document_type?: DocumentType;
    };
    document_features: {
        has_nfc: boolean;
    };
} & UploadFileResponse;
export declare type VideoChallengeLanguage = {
    source: string;
    language_code: string;
};
export declare type ChallengePayload = {
    type: 'recite';
    query: number[];
} | {
    type: 'movement';
    query: string;
};
export declare type FaceVideoResponse = {
    challenge: ChallengePayload[];
    languages: VideoChallengeLanguage[];
} & UploadFileResponse;
export type CustomCallbackFormatterType = 'raw' | 'formData';
export type EnterpriseFeatureCallback = {
    useCustomizedApiRequests?: boolean;
    formatter?: CustomCallbackFormatterType;
    onSubmitDocument?: (data: FormData | SubmitDocument) => Promise<EnterpriseCallbackResponse<DocumentImageResponse>>;
    onSubmitSelfie?: (data: FormData | SubmitSelfie) => Promise<EnterpriseCallbackResponse<UploadFileResponse>>;
    onSubmitVideo?: (data: FormData | SubmitVideo) => Promise<EnterpriseCallbackResponse<FaceVideoResponse>>;
};
export {};
