import { Address, IAddressPayload } from './Address'; import { Core } from './Core'; import { ExtraData, ICloneable, Nullable } from './general'; import { IProfilePayload, Profile } from './Profile'; type AddressType = Address['addressType']; type ApplicantExtraData = ExtraData & Partial<{ home_country_givenname: string; home_country_familyname: string; marital_status: Core['enumMaritalStatus']; 'dob.Buddhist': string; buddhist_solar_dob: true; }>; export type TOriginalUboDetails = { name: { givenName: Nullable; middleName: Nullable; familyName: Nullable; displayName: Nullable; }; dateOfBirth: Nullable; addresses: Address[]; isNameAddedByCustomer?: boolean; isDobAddedByCustomer?: boolean; }; export interface IApplicantPayload { entityId: Nullable; customerReference: Nullable; additionalReferences: Record; name: { givenName?: Nullable; middleName?: Nullable; familyName?: Nullable; displayName?: Nullable; }; extraData?: ApplicantExtraData; dateOfBirth: Nullable; gender: Nullable; phoneNumber: { documentId: Nullable; idNumber: Nullable; }; addresses: IAddressPayload[]; email: { documentId: Nullable; idNumber: Nullable; }; profile: IProfilePayload | null; assignee: Nullable; consents: string[]; blocklistAttributes: Nullable<'ATTR' | 'FULL'>; originalUboDetails?: Nullable; } interface IApplicantConstructor { entityId: Nullable; customerReference?: Nullable; additionalReferences?: Record; name?: { givenName?: Nullable; middleName?: Nullable; familyName?: Nullable; displayName?: Nullable; }; extraData?: ApplicantExtraData; dateOfBirth?: Nullable; gender?: Nullable; phoneNumber?: { documentId?: Nullable; idNumber?: Nullable; }; addresses?: Address[]; email?: { documentId?: Nullable; idNumber?: Nullable; }; profile?: Nullable; assignee?: Nullable; consents?: string[]; blocklistAttributes?: Nullable<'ATTR' | 'FULL'>; originalUboDetails?: Nullable; } export type FullNameFields = { givenName?: Nullable; middleName?: Nullable; familyName?: Nullable; displayName?: Nullable; }; export type SpecialDocument = { documentId: Nullable; idNumber: Nullable; }; export declare class Applicant implements ICloneable { entityId: Nullable; customerReference: Nullable; additionalReferences: Record; name: FullNameFields; dateOfBirth: Nullable; gender: Nullable; extraData: ApplicantExtraData; phoneNumber: SpecialDocument; addresses: Address[]; email: SpecialDocument; profile: Nullable; assignee: Nullable; consents: string[]; blocklistAttributes: Nullable<'ATTR' | 'FULL'>; originalUboDetails: Nullable; constructor(); constructor(a: IApplicantConstructor); get currentPreviousAddress(): { current: Address; previous: Address; }; set fullName(value: string); get displayName(): string; get nativeName(): string; getAddress(addressType: AddressType): Address | null; clone(): Applicant; toJSON(): IApplicantPayload; static fromJSON(payload: IApplicantPayload): Applicant; static default(): Applicant; } export {}; //# sourceMappingURL=Applicant.d.ts.map