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 { IndividualSchema } from '../Individual.types';
/**
 * A schema which allows for easy comparison of specific data between two {@link IndividualSchema}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 IndividualConflictsSchema {
    /** 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 IndividualSchema} to an {@link IndividualConflictsSchema}.
 *
 * This is useful for comparing two {@link IndividualSchema} objects field by field.
 *
 * @param {IndividualSchema} individualSchema - The schema to convert.
 * @returns {IndividualConflictsSchema} The flattened schema.
 */
export declare const toIndividualConflictSchema: ({ basicDetails, additionalPersonalDetails, }: IndividualSchema) => IndividualConflictsSchema;
/**
 * Converts an {@link IndividualConflictsSchema} back to an {@link IndividualSchema}.
 *
 * This is useful for reconstructing the original schema after a comparison.
 *
 * @param {IndividualConflictsSchema} conflictSchema - The flattened schema to convert.
 * @returns {IndividualSchema} The reconstructed schema.
 */
export declare const fromIndividualConflictSchema: ({ firstName, lastName, email, phoneNumber, birthDate, nationality, address, ...idFields }: IndividualConflictsSchema) => IndividualSchema;
