/** * Identifies an attribute with a name and a container. */ export interface AttributeDescriptor { /** * The name of the attribute. */ attributeName: string; /** * The container the attribute resides in. */ containerName: string; } /** * Stores a set of named profile attributes. */ export interface AttributesContainer { /** * The attributes stored by the container. */ attributes: { [key: string]: ProfileAttribute; }; /** * The name of the container. */ containerName: string; /** * The maximum revision number of any attribute within the container. */ revision: number; } export interface Avatar { isAutoGenerated: boolean; size: AvatarSize; timeStamp: Date; value: number[]; } /** * Small = 34 x 34 pixels; Medium = 44 x 44 pixels; Large = 220 x 220 pixels */ export declare enum AvatarSize { Small = 0, Medium = 1, Large = 2 } /** * A profile attribute which always has a value for each profile. */ export interface CoreProfileAttribute extends ProfileAttributeBase { } export interface CreateProfileContext { ciData: { [key: string]: any; }; contactWithOffers: boolean; countryName: string; displayName: string; emailAddress: string; hasAccount: boolean; language: string; phoneNumber: string; /** * The current state of the profile. */ profileState: ProfileState; } export interface GeoRegion { regionCode: string; } /** * A user profile. */ export interface Profile { /** * The attributes of this profile. */ applicationContainer: AttributesContainer; /** * The core attributes of this profile. */ coreAttributes: { [key: string]: CoreProfileAttribute; }; /** * The maximum revision number of any attribute. */ coreRevision: number; /** * The unique identifier of the profile. */ id: string; /** * The current state of the profile. */ profileState: ProfileState; /** * The maximum revision number of any attribute. */ revision: number; /** * The time at which this profile was last changed. */ timeStamp: Date; } /** * A named object associated with a profile. */ export interface ProfileAttribute extends ProfileAttributeBase { } export interface ProfileAttributeBase { /** * The descriptor of the attribute. */ descriptor: AttributeDescriptor; /** * The revision number of the attribute. */ revision: number; /** * The time the attribute was last changed. */ timeStamp: Date; /** * The value of the attribute. */ 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[]; } /** * The state of a profile. */ export declare enum ProfileState { /** * The profile is in use. */ Custom = 0, /** * The profile is in use, but can only be read. */ CustomReadOnly = 1, /** * The profile may only be read. */ ReadOnly = 2 }