export declare type UserIdentifierInfoType = 'USER_POINT' | 'USER_ACCOUNT' | 'USER_EMAIL' | 'USER_AGENT';
export declare type UUID = string;
export declare type VectorId = string;
export declare type TimeStamp = number;
export declare type UserEmailIdentifierProviderResource = any;
export declare type UserAgentInfo = any;
export interface UserIdentifierInfo {
    type: UserIdentifierInfoType;
}
export interface UserPointIdentifierInfo extends UserIdentifierInfo {
    user_point_id: UUID;
    creation_ts: TimeStamp;
}
export interface UserEmailIdentifierInfo extends UserIdentifierInfo {
    hash: string;
    email?: string;
    operator?: string;
    creation_ts: TimeStamp;
    last_activity_ts: TimeStamp;
    providers: Array<UserEmailIdentifierProviderResource>;
}
export interface UserAccountIdentifierInfo extends UserIdentifierInfo {
    user_account_id: string;
    creation_ts: TimeStamp;
    compartment_id?: number;
}
export interface UserAgentIdentifierInfo extends UserIdentifierInfo {
    vector_id: VectorId;
    device?: UserAgentInfo;
    creation_ts: TimeStamp;
    last_activity_ts: TimeStamp;
    providers: Array<UserAgentIdentifierProviderResource>;
    mappings: Array<UserAgentIdMappingResource>;
}
export interface UserAgentIdMappingResource {
    user_agent_id: string;
    realm_name: string;
    last_activity_ts: number;
}
export interface UserAgentIdentifierProviderResource {
    technical_name: string;
    creation_ts?: TimeStamp;
    last_activity_ts?: TimeStamp;
    expiration_ts?: TimeStamp;
}
