import { GroupIdentity, GuidValue, Identity, IdentityProperty, UserIdentityPropertyDefinition, PropertyBinding, PropertyDefinition, ResolvedUserIdentity, UserIdentity, LanguagePropertyValue } from "@omnia/fx-models";
import { MediaPickerService, UserPresenceStatus } from "../services";
import { Store } from "./Store";
export declare class UserIdentityStore extends Store {
    private userIdentityService;
    private identityService;
    mediaPickerService: MediaPickerService;
    private omniaContext;
    private identityStore;
    private resolveUserPropertiesPromise;
    private resolveUsernamePromises;
    private usersPresenceState;
    private userProperties;
    private needToResolveUsernames;
    private resolveEmailPromises;
    private needToResolveEmails;
    getters: {
        getUserProperties: () => IdentityProperty[];
        getUserPresence: (user: UserIdentity) => UserPresenceStatus;
        getResolvedUserIdentity: (user: UserIdentity) => ResolvedUserIdentity;
        getUserImageUrl: (user: ResolvedUserIdentity, imageRatioId?: number, scalingId?: number) => string;
    };
    actions: {
        addUserProperty: import("./Store").StoreAction<unknown, (property: PropertyBinding<PropertyDefinition<any, any, any, import("@omnia/fx-models").PropertySetupBase>>) => void, (result: void, property: PropertyBinding<PropertyDefinition<any, any, any, import("@omnia/fx-models").PropertySetupBase>>) => void, (failureReason: any, property: PropertyBinding<PropertyDefinition<any, any, any, import("@omnia/fx-models").PropertySetupBase>>) => void, (property: PropertyBinding<PropertyDefinition<any, any, any>>) => Promise<void>>;
        createUserProperty: import("./Store").StoreAction<unknown, (property: UserIdentityPropertyDefinition) => void, (result: void, property: UserIdentityPropertyDefinition) => void, (failureReason: any, property: UserIdentityPropertyDefinition) => void, (property: UserIdentityPropertyDefinition) => Promise<void>>;
        removeUserProperty: import("./Store").StoreAction<unknown, (identityProperty: IdentityProperty) => void, (result: void, identityProperty: IdentityProperty) => void, (failureReason: any, identityProperty: IdentityProperty) => void, (identityProperty: IdentityProperty) => Promise<void>>;
        updateUserProperty: import("./Store").StoreAction<unknown, (identityProperty: IdentityProperty) => void, (result: void, identityProperty: IdentityProperty) => void, (failureReason: any, identityProperty: IdentityProperty) => void, (identityProperty: IdentityProperty) => Promise<void>>;
        terminateUserProperty: import("./Store").StoreAction<unknown, (identityProperty: IdentityProperty) => void, (result: void, identityProperty: IdentityProperty) => void, (failureReason: any, identityProperty: IdentityProperty) => void, (identityProperty: IdentityProperty) => Promise<void>>;
        restoreUserProperty: import("./Store").StoreAction<unknown, (identityProperty: IdentityProperty) => void, (result: void, identityProperty: IdentityProperty) => void, (failureReason: any, identityProperty: IdentityProperty) => void, (identityProperty: IdentityProperty) => Promise<void>>;
        ensureLoadUserProperties: import("./Store").StoreAction<unknown, () => void, (result: IdentityProperty[]) => void, (failureReason: any) => void, () => Promise<IdentityProperty[]>>;
        resolveUsersIdentity: import("./Store").StoreAction<unknown, (users: UserIdentity[]) => void, (result: {
            [uid: string]: ResolvedUserIdentity;
        }, users: UserIdentity[]) => void, (failureReason: any, users: UserIdentity[]) => void, (users: UserIdentity[]) => Promise<{
            [uid: string]: ResolvedUserIdentity;
        }>>;
        resolveUserIdentitiesByUsername: import("./Store").StoreAction<unknown, (usernames: string[]) => void, (result: {
            [username: string]: ResolvedUserIdentity;
        }, usernames: string[]) => void, (failureReason: any, usernames: string[]) => void, (usernames: string[]) => Promise<{
            [username: string]: ResolvedUserIdentity;
        }>>;
        resolveUserIdentitiesByEmail: import("./Store").StoreAction<unknown, (emails: string[]) => void, (result: {
            [email: string]: ResolvedUserIdentity;
        }, emails: string[]) => void, (failureReason: any, emails: string[]) => void, (emails: string[]) => Promise<{
            [email: string]: ResolvedUserIdentity;
        }>>;
        resolveUsersPresence: import("./Store").StoreAction<unknown, (users: ResolvedUserIdentity[]) => void, (result: {
            [uid: string]: UserPresenceStatus;
        }, users: ResolvedUserIdentity[]) => void, (failureReason: any, users: ResolvedUserIdentity[]) => void, (users: ResolvedUserIdentity[]) => Promise<{
            [uid: string]: UserPresenceStatus;
        }>>;
        checkUserMemberOfGroups: import("./Store").StoreAction<unknown, (user: UserIdentity, groups: GroupIdentity[]) => void, (result: {
            [groupUid: string]: boolean;
        }, user: UserIdentity, groups: GroupIdentity[]) => void, (failureReason: any, user: UserIdentity, groups: GroupIdentity[]) => void, (user: UserIdentity, groups: GroupIdentity[]) => Promise<{
            [groupUid: string]: boolean;
        }>>;
        getUserGroups: import("./Store").StoreAction<unknown, (user: UserIdentity) => void, (result: GroupIdentity[], user: UserIdentity) => void, (failureReason: any, user: UserIdentity) => void, (user: UserIdentity) => Promise<GroupIdentity[]>>;
        getIdentitiesWithProviderIdentities: import("./Store").StoreAction<unknown, (providerId: GuidValue, userIds: GuidValue[]) => void, (result: {
            [userIdentityUid: string]: Identity;
        }, providerId: GuidValue, userIds: GuidValue[]) => void, (failureReason: any, providerId: GuidValue, userIds: GuidValue[]) => void, (providerId: GuidValue, userIds: GuidValue[]) => Promise<{
            [userIdentityUid: string]: Identity;
        }>>;
        setUiLanguage: import("./Store").StoreAction<unknown, (uiLanguage: LanguagePropertyValue) => void, (result: ResolvedUserIdentity, uiLanguage: LanguagePropertyValue) => void, (failureReason: any, uiLanguage: LanguagePropertyValue) => void, (uiLanguage: LanguagePropertyValue) => Promise<ResolvedUserIdentity>>;
        removeUiLanguage: import("./Store").StoreAction<unknown, () => void, (result: ResolvedUserIdentity) => void, (failureReason: any) => void, () => Promise<ResolvedUserIdentity>>;
    };
    protected onActivated(): void;
}
