import { IInvite } from './Invite';
import { IIAMProviderLinked } from './IAMProviderLinked';
import { IUserOnboarding } from './UserOnboarding';
import { IUserSettings } from './UserSettings';
import { IUserEvent } from './UserEvent';
export declare const ANONYMOUS_USER: undefined;
export declare const ANONYMOUS_USER_TOKEN: undefined;
export declare const ANONYMOUS_USER_EXTERNAL_TOKEN: undefined;
/**
 * Get a random color from the list of colors.
 */
export declare const getUserRandomColor: () => string;
export declare class User implements IUser {
    id: string;
    handle: string;
    email: string;
    firstName: string;
    lastName: string;
    initials: string;
    displayName: string;
    friendlyName?: string;
    joinDate?: Date;
    roles: string[];
    credits?: number;
    creditsCustomerId?: string;
    avatarUrl?: string;
    origin?: string;
    invites?: Array<IInvite>;
    iamProviders: Array<IIAMProviderLinked>;
    settings: IUserSettings;
    unsubscribedFromOutbounds: boolean;
    mfaUrl?: string;
    onboarding: IUserOnboarding;
    linkedContactId?: string;
    events: Array<IUserEvent>;
    constructor(u: any);
    setRoles(roles: string[]): void;
}
/**
 * Convert the raw user object to {@link IUser}.
 *
 * @param u Raw user object from DB
 * @returns IUser
 */
export declare function asUser(u: any): IUser;
export type IBaseUser = {
    email: string;
    firstName: string;
    lastName: string;
    initials: string;
    displayName: string;
    friendlyName?: string;
    joinDate?: Date;
    roles: string[];
    setRoles: (roles: string[]) => void;
};
export type IUser = IBaseUser & {
    id: string;
    handle: string;
    credits?: number;
    creditsCustomerId?: string;
    avatarUrl?: string;
    origin?: string;
    invites?: Array<IInvite>;
    iamProviders: Array<IIAMProviderLinked>;
    settings: IUserSettings;
    unsubscribedFromOutbounds: boolean;
    mfaUrl?: string;
    onboarding: IUserOnboarding;
    linkedContactId?: string;
    events: Array<IUserEvent>;
};
export default IUser;
