import type { RetrieveAddressSuccessResponse } from '../../../../api/address/address.types';
import { type ExperimentName } from '../../../../context/ExperimentContext/types';
import type { Language } from '../../../../language/Language';
import type { CleanseAPIRequestPayload } from '../../../../core/models/api/contracts';
import type { CountryCode } from '../../../../types/datasets/country-code';
import type { AsyncValidatorRules, ValidatorRules } from '../../../../utils/validation/types';
import type { AddressSchema } from './types';
export declare const addressValidationRules: (country: CountryCode | undefined) => ValidatorRules<AddressSchema>;
export declare const addressValidationRulesV4: (country: CountryCode | undefined, i18n: Language) => ValidatorRules<AddressSchema>;
export declare const addressValidators: ({ isExperimentEnabled, country, i18n, }: {
    isExperimentEnabled?: (experiment: ExperimentName) => boolean;
    country?: CountryCode;
    i18n: Language;
}) => ValidatorRules<AddressSchema>;
export declare const preventPoBoxValidation: (cleanseAddress: (payload: CleanseAPIRequestPayload) => Promise<RetrieveAddressSuccessResponse>) => AsyncValidatorRules<AddressSchema>;
