export interface AttributeDescriptor {
    attributeName: string;
    containerName: string;
}
export interface AttributesContainer {
    attributes: {
        [key: string]: ProfileAttribute;
    };
    containerName: string;
    revision: number;
}
export interface Avatar {
    isAutoGenerated: boolean;
    size: AvatarSize;
    timeStamp: Date;
    value: number[];
}
export declare enum AvatarSize {
    Small = 0,
    Medium = 1,
    Large = 2
}
export interface CoreProfileAttribute extends ProfileAttributeBase<any> {
}
export interface Country {
    code: string;
    englishName: string;
}
export interface CreateProfileContext {
    cIData: {
        [key: string]: any;
    };
    contactWithOffers: boolean;
    countryName: string;
    displayName: string;
    emailAddress: string;
    hasAccount: boolean;
    language: string;
    phoneNumber: string;
}
export interface GeoRegion {
    regionCode: string;
}
export interface Profile {
    applicationContainer: AttributesContainer;
    coreAttributes: {
        [key: string]: CoreProfileAttribute;
    };
    coreRevision: number;
    id: string;
    revision: number;
    timeStamp: Date;
}
export interface ProfileAttribute extends ProfileAttributeBase<string> {
}
export interface ProfileAttributeBase<T> {
    descriptor: AttributeDescriptor;
    revision: number;
    timeStamp: Date;
    value: T;
}
/**
 * Country/region information
 */
export interface ProfileRegion {
    /**
     * The two-letter code defined in ISO 3166 for the country/region.
     */
    code: string;
    /**
     * Localized country/region name
     */
    name: string;
}
/**
 * Container of country/region information
 */
export interface ProfileRegions {
    /**
     * List of country/region code with contact consent requirement type of notice
     */
    noticeContactConsentRequirementRegions: string[];
    /**
     * List of country/region code with contact consent requirement type of opt-out
     */
    optOutContactConsentRequirementRegions: string[];
    /**
     * List of country/regions
     */
    regions: ProfileRegion[];
}
export declare var TypeInfo: {
    AttributeDescriptor: {
        fields: any;
    };
    AttributesContainer: {
        fields: any;
    };
    Avatar: {
        fields: any;
    };
    AvatarSize: {
        enumValues: {
            small: number;
            medium: number;
            large: number;
        };
    };
    CoreProfileAttribute: {
        fields: any;
    };
    Country: {
        fields: any;
    };
    CreateProfileContext: {
        fields: any;
    };
    GeoRegion: {
        fields: any;
    };
    Profile: {
        fields: any;
    };
    ProfileAttribute: {
        fields: any;
    };
    ProfileAttributeBase: {
        fields: any;
    };
    ProfileRegion: {
        fields: any;
    };
    ProfileRegions: {
        fields: any;
    };
};
