import type { Phone } from '../../../../core/models/api/phone';
import type { IndividualIdNumberType } from '../../../Shared/fields/IdFieldTypeSelector/countryIdNumberTypes';
import type { AddressSchema } from '../../../Shared/forms/Address/types';
import type { CountryCode } from '../../../../types/datasets/country-code';
import type { IndividualOnfidoSchema } from '../Individual.types';
/**
 * A schema which allows for easy comparison of specific data between two {@link IndividualOnfidoSchema}s.
 *
 * **Note:** top-level properties will be compared, e.g. the `address` field will be treated a single, indivisible unit.
 * If you wanted to compare `address.city`, you would need to put that field on the top-level.
 */
export interface IndividualOnfidoConflictsSchema {
    /** see {@link BasicDetailsSchema} */
    firstName?: string;
    lastName?: string;
    email?: string;
    phoneNumber?: Phone;
    /** see {@link IdentityNumberSchema} */
    typeOfIdentity?: IndividualIdNumberType;
    idNumber?: string;
    issuerState?: string;
    licenseCardNumber?: string;
    expiryDate?: string;
    /** see {@link AdditionalIdentityInfoSchema} */
    birthDate?: string;
    nationality?: CountryCode;
    address?: AddressSchema;
}
/**
 * Converts and flattens an {@link IndividualOnfidoSchema} to an {@link IndividualOnfidoConflictsSchema}.
 *
 * This is useful for comparing two {@link IndividualOnfidoSchema} objects field by field.
 *
 * @param {IndividualOnfidoSchema} individualOnfidoSchema - The schema to convert.
 * @returns {IndividualOnfidoConflictsSchema} The flattened schema.
 */
export declare const toIndividualOnfidoConflictSchema: ({ basicDetails, additionalPersonalDetails, }: IndividualOnfidoSchema) => IndividualOnfidoConflictsSchema;
/**
 * Converts an {@link IndividualOnfidoConflictsSchema} back to an {@link IndividualOnfidoSchema}.
 *
 * This is useful for reconstructing the original schema after a comparison.
 *
 * @param {IndividualOnfidoConflictsSchema} conflictSchema - The flattened schema to convert.
 * @returns {IndividualOnfidoSchema} The reconstructed schema.
 */
export declare const fromIndividualOnfidoConflictSchema: ({ firstName, lastName, email, phoneNumber, birthDate, nationality, address, ...idFields }: IndividualOnfidoConflictsSchema) => IndividualOnfidoSchema;
