export declare const Kind = "Core#UserIdentity";
type Provider = 'google';
/**
 * In the system the user identity represents registration information associated with a specific identity provider.
 * This association allows the user to use different identity providers that map to the same user, as long as the
 * email stays consistent.
 */
export interface IUserIdentity {
    kind: typeof Kind;
    /**
     * The database ID
     */
    key: string;
    /**
     * The related user id.
     */
    userId: string;
    /**
     * The identity provider.
     */
    provider: Provider;
    /**
     * The provider's unique ID.
     * This allows to recognize a returning user.
     */
    providerId: string;
    /**
     * `true`, if the provider has verified the email address.
     */
    emailVerified: boolean;
    /**
     * If present, the host domain of the user's GSuite email address.
     * Google specific.
     */
    hostDomain?: string;
}
export declare class UserIdentity implements IUserIdentity {
    kind: typeof Kind;
    key: string;
    userId: string;
    provider: Provider;
    providerId: string;
    emailVerified: boolean;
    hostDomain?: string;
    constructor(input?: string | IUserIdentity);
    new(init: IUserIdentity): void;
    static isUserIdentity(input: unknown): boolean;
    toJSON(): IUserIdentity;
}
export {};
//# sourceMappingURL=UserIdentity.d.ts.map