import { Serializable } from '../../../internal/interfaces/serializable';
export declare class SubmitKYCReq implements Serializable {
    /**
     * client uid
     */
    clientUid: string;
    /**
     * first Name
     */
    firstName: string;
    /**
     * last Name
     */
    lastName: string;
    /**
     * ISO country code
     */
    issueCountry: string;
    /**
     * Birth Date
     */
    birthDate: string;
    /**
     * Identity type
     */
    identityType: SubmitKYCReq.IdentityTypeEnum;
    /**
     * Identity Number
     */
    identityNumber: string;
    /**
     * expire Date. If there is no expiration date, please fill in: 2099-01-01
     */
    expireDate: string;
    /**
     * **Optional when identityType=bvn,** Front photo of the ID card, in base64 format, PNG or JPG is recommended, and the size cannot exceed 2MB. If it exceeds 2MB, it is recommended to adjust the resolution and compress it to less than 2MB
     */
    frontPhoto: string;
    /**
     * **Optional when identityType=passport/bvn,** Back photo of ID, same as above
     */
    backendPhoto: string;
    /**
     * Selfie photo, in base64 format, PNG or JPG is recommended, and the size cannot exceed 2MB. If it exceeds 2MB, it is recommended to adjust the resolution and compress it to less than 2MB
     */
    facePhoto: string;
    /**
     * Private constructor, please use the corresponding static methods to construct the object.
     */
    private constructor();
    /**
     * Creates a new instance of the `SubmitKYCReq` class.
     * The builder pattern allows step-by-step construction of a `SubmitKYCReq` object.
     */
    static builder(): SubmitKYCReqBuilder;
    /**
     * Creates a new instance of the `SubmitKYCReq` class with the given data.
     */
    static create(data: {
        /**
         * client uid
         */
        clientUid: string;
        /**
         * first Name
         */
        firstName: string;
        /**
         * last Name
         */
        lastName: string;
        /**
         * ISO country code
         */
        issueCountry: string;
        /**
         * Birth Date
         */
        birthDate: string;
        /**
         * Identity type
         */
        identityType: SubmitKYCReq.IdentityTypeEnum;
        /**
         * Identity Number
         */
        identityNumber: string;
        /**
         * expire Date. If there is no expiration date, please fill in: 2099-01-01
         */
        expireDate: string;
        /**
         * **Optional when identityType=bvn,** Front photo of the ID card, in base64 format, PNG or JPG is recommended, and the size cannot exceed 2MB. If it exceeds 2MB, it is recommended to adjust the resolution and compress it to less than 2MB
         */
        frontPhoto: string;
        /**
         * **Optional when identityType=passport/bvn,** Back photo of ID, same as above
         */
        backendPhoto: string;
        /**
         * Selfie photo, in base64 format, PNG or JPG is recommended, and the size cannot exceed 2MB. If it exceeds 2MB, it is recommended to adjust the resolution and compress it to less than 2MB
         */
        facePhoto: string;
    }): SubmitKYCReq;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): SubmitKYCReq;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): SubmitKYCReq;
}
export declare namespace SubmitKYCReq {
    enum IdentityTypeEnum {
        /**
         * id card
         */
        IDCARD,
        /**
         * driving license
         */
        DRIVINGLICENSE,
        /**
         * passport
         */
        PASSPORT,
        /**
         * bvn
         */
        BVN
    }
}
export declare class SubmitKYCReqBuilder {
    readonly obj: SubmitKYCReq;
    constructor(obj: SubmitKYCReq);
    /**
     * client uid
     */
    setClientUid(value: string): SubmitKYCReqBuilder;
    /**
     * first Name
     */
    setFirstName(value: string): SubmitKYCReqBuilder;
    /**
     * last Name
     */
    setLastName(value: string): SubmitKYCReqBuilder;
    /**
     * ISO country code
     */
    setIssueCountry(value: string): SubmitKYCReqBuilder;
    /**
     * Birth Date
     */
    setBirthDate(value: string): SubmitKYCReqBuilder;
    /**
     * Identity type
     */
    setIdentityType(value: SubmitKYCReq.IdentityTypeEnum): SubmitKYCReqBuilder;
    /**
     * Identity Number
     */
    setIdentityNumber(value: string): SubmitKYCReqBuilder;
    /**
     * expire Date. If there is no expiration date, please fill in: 2099-01-01
     */
    setExpireDate(value: string): SubmitKYCReqBuilder;
    /**
     * **Optional when identityType=bvn,** Front photo of the ID card, in base64 format, PNG or JPG is recommended, and the size cannot exceed 2MB. If it exceeds 2MB, it is recommended to adjust the resolution and compress it to less than 2MB
     */
    setFrontPhoto(value: string): SubmitKYCReqBuilder;
    /**
     * **Optional when identityType=passport/bvn,** Back photo of ID, same as above
     */
    setBackendPhoto(value: string): SubmitKYCReqBuilder;
    /**
     * Selfie photo, in base64 format, PNG or JPG is recommended, and the size cannot exceed 2MB. If it exceeds 2MB, it is recommended to adjust the resolution and compress it to less than 2MB
     */
    setFacePhoto(value: string): SubmitKYCReqBuilder;
    /**
     * Get the final object.
     */
    build(): SubmitKYCReq;
}
