import { Base64, DLType, HCType, VerifyType } from './types';
export declare const postImages: (image: Base64) => Promise<Response>;
/**
 * @category Api
 * @param pramUuid UUID to delete
 * @param callback Callback called once the delete is completed
 */
export declare function deleteUuid(guid: string, callback: () => void): Promise<void>;
export declare function getPhrases(): Promise<Array<string>>;
export declare function sendOTP(phone_number: string): Promise<string>;
export declare function verifyOTP(otp: string, token: string): Promise<string>;
type createUserProps = {
    id?: string;
    guid?: string;
    phone?: string;
    phoneVerified?: boolean;
    email?: string;
    emailVerified?: boolean;
    ssn4?: string;
    ssn9?: string;
    userConsent: boolean;
    userConsentDate: string;
    userFaceEnrollConsent?: boolean;
    consentVersion?: string;
    consentContent?: string;
    portrait?: string;
};
export declare function createUser(payload: createUserProps): Promise<string>;
export declare function sendEmail(email: string, uuid: string, skin: string, customerName: string): Promise<string>;
export declare function expandUri(shortUrl: string): Promise<string>;
type VerifyTokenProps = {
    code: string;
    type: VerifyType;
};
export declare function verifyToken({ code, type }: VerifyTokenProps): Promise<string>;
export declare function sendSmsCode({ id, phone }: {
    id: string;
    phone: string;
}): Promise<string>;
export declare function sendEnrollSms({ id }: {
    id: string;
}): Promise<string>;
export declare function sendMessage({ id, type, endpoint, message, email, subject, phone, }: {
    id: string;
    type: 'email' | 'phone';
    endpoint: string;
    message: string;
    email?: string;
    subject?: string;
    phone?: string;
}): Promise<string>;
export declare function uploadPortrait({ id, portrait }: {
    id: string;
    portrait: string;
}): Promise<string>;
type UploadDlProps = {
    id: string;
    type: DLType;
    image?: string;
    barcode?: string;
    process_ocr?: boolean;
};
export declare function uploadDL({ id, type, image, barcode, process_ocr }: UploadDlProps): Promise<string>;
type UploadHcProps = {
    id: string;
    type: HCType;
    image?: string;
    processOcr?: boolean;
};
export declare function uploadHC({ id, type, image, processOcr }: UploadHcProps): Promise<string>;
export declare function getUserStatus({ id }: {
    id: string;
}): Promise<{
    complianceReview: boolean;
    expiredDate: string;
    expiredID: boolean;
    manualPIIEntry: boolean;
    orchestrationStatus: string;
    requestResAddress: boolean;
    requestSSN4: boolean;
    requestSSN9: boolean;
    requestScanID: boolean;
    toBeEncrypted: boolean;
    underAge: boolean;
    userApproved: boolean;
    userBiometric: string;
    userRegistered: boolean;
    userScanId: boolean;
}>;
type Attributes = {
    uuid?: string;
    guid?: string;
    ssn?: string;
    ssn4?: string;
    govId?: {
        firstName?: string;
        lastName?: string;
        portraitConfScore?: number;
        address?: {
            addressLine1?: string;
            addressLine2?: string;
            city?: string;
            state?: string;
            zipCode?: string;
            country?: string;
        };
        idDocumentNumber?: string;
    };
    preferred?: {
        firstName?: string;
        lastName?: string;
        dob?: string;
        address?: {
            addressLine1?: string;
            addressLine2?: string;
            city?: string;
            state?: string;
            zipCode?: string;
            country?: string;
        };
        idDocumentNumber?: string;
    };
};
export declare function updateUser({ id, attributes }: {
    id: string;
    attributes: Attributes;
}): Promise<string>;
export declare function verifyUser({ id, apiValue, organizationApiKey, }: {
    id: string;
    apiValue: string;
    organizationApiKey: string;
}): Promise<any>;
export declare function getProductGroups(): Promise<any>;
export declare function transmit({ id, url, sessionToken, final, apiToken, }: {
    id: string;
    url: string;
    sessionToken: string;
    apiToken?: string;
    final: boolean;
}): Promise<Response>;
export declare function validateSecurityToken({ token, uuid }: {
    token: string;
    uuid: string;
}): Promise<any>;
export declare enum VerificationType {
    IDENTITY = "IDENTITY",
    AGE = "AGE"
}
export declare function createVerificationSession({ successUrl, failureUrl, type, productGroupId, }: {
    successUrl: string;
    failureUrl: string;
    type: VerificationType;
    productGroupId: string;
}): Promise<any>;
declare enum SessionType {
    Identity = "IDENTITY",
    Age = "AGE"
}
export interface VerificationSessionPayload {
    successUrl: string;
    failureUrl: string;
    type: SessionType;
    productGroupId: string;
    customerIn?: boolean;
}
export declare const createVerificationSessionV2: ({ successUrl, failureUrl, type, productGroupId, customerIn, }: VerificationSessionPayload) => Promise<any>;
export type createUserWithSessionProp = {
    sessionToken: string;
    ssn?: string;
    phone?: string;
    email?: string;
};
export declare const createUserWithSession: ({ sessionToken, ssn, email, phone }: createUserWithSessionProp) => Promise<any>;
export type updateUserManualInputWithSessionProps = {
    sessionToken: string;
    firstName?: string;
    lastName?: string;
    dob?: string;
    address?: {
        addressLine1?: string;
        addressLine2?: string;
        city?: string;
        state?: string;
        zipCode?: string;
        country?: string;
    };
    ssn?: string;
};
export declare const updateUserManualInputWithSession: ({ sessionToken, firstName, lastName, dob, address, }: updateUserManualInputWithSessionProps) => Promise<any>;
export declare enum createDocumentUploadIdTypeEnum {
    health_card = "health_card",
    passport = "passport",
    drivers_license = "drivers_license"
}
export type createDocumentUploadIdType = {
    sessionToken: string;
    documentType: createDocumentUploadIdTypeEnum;
    content?: any;
};
export declare const createDocumentUploadIdWithSession: ({ sessionToken, documentType, content, }: createDocumentUploadIdType) => Promise<any>;
export declare enum documentImageTypeEnum {
    FRONT = "front",
    BACK = "back",
    FRONT_CROPPED_DOCUMENT = "front_cropped_document",
    BACK_CROPPED_DOCUMENT = "back_cropped_document",
    FRONT_MUGSHOT = "front_mugshot",
    BACK_BARCODE = "back_barcode"
}
export type uploadDocumentImageWithSessionProps = {
    sessionToken: string;
    documentId: string;
    documentImageType: documentImageTypeEnum;
    imageString: string;
};
export declare const uploadDocumentImageWithSession: ({ sessionToken, documentId, documentImageType, imageString, }: uploadDocumentImageWithSessionProps) => Promise<any>;
interface updateDocumentContentInterface {
    sessionToken: string;
    documentId: string;
    content: any;
}
export declare const updateDocumentContent: ({ sessionToken, documentId, content }: updateDocumentContentInterface) => Promise<any>;
export type uploadEnrollImageWithSessionProps = {
    sessionToken: string;
    imageString: string;
};
export declare const uploadEnrollImageWithSession: ({ sessionToken, imageString, }: uploadEnrollImageWithSessionProps) => Promise<any>;
export declare enum updateTypeEnum {
    enroll = "enroll",
    compare = "compare",
    personalDetails = "personalDetails"
}
export type updateUserWithSessionProps = {
    sessionToken: string;
    guid?: string;
    uuid?: string;
    ssn?: string;
    email?: string;
    phone?: string;
    portrait_conf_score?: string;
    updateType: updateTypeEnum;
};
export declare const updateUserWithSession: ({ sessionToken, guid, uuid, email, phone, ssn, portrait_conf_score, updateType, }: updateUserWithSessionProps) => Promise<any>;
export declare const verifyIdWithSession: ({ sessionToken }: {
    sessionToken: string;
}) => Promise<any>;
export declare const verifySessionTokenV2: ({ sessionToken }: {
    sessionToken: string;
}) => Promise<any>;
export declare const createFederationHash: ({ sesstionToken }: {
    sesstionToken: string;
}) => Promise<any>;
export declare const generatePasskey: (sessionToken: string) => Promise<any>;
export declare const authenticatePasskey: (uuid: string) => Promise<any>;
export declare const deletePasskey: (uuid: any) => Promise<any>;
interface createAuthSessionInterface {
    requiredAAL: number;
    productGroupId: string;
    actionFlow: string;
    requiredIAL: number;
    requiredFAL: number;
    interactionUID?: string;
}
export declare const createAuthSession: ({ requiredAAL, productGroupId, requiredFAL, requiredIAL, actionFlow, interactionUID, }: createAuthSessionInterface) => Promise<any>;
export declare const generateAuthPasskeyOptions: ({ uuid, sessionToken }: {
    uuid: string;
    sessionToken: string;
}) => Promise<any>;
export declare const verifyAuthPasskey: ({ uuid, sessionToken, data, }: {
    uuid: string;
    sessionToken: string;
    data: any;
}) => Promise<any>;
export {};
