import { CancellablePromise } from 'mobx'; import { ElementSchemaVersion, NotificationEvent, SecurityGroup, User } from '../interfaces'; import { OrganizationConfiguration } from '../interfaces/config.interface'; import { Organization } from '../interfaces/organization.interface'; import { ChangePasswordFormData, EditableUserAttributes, ProfileDataExtended, ProfileOptions } from '../interfaces/user.interface'; import { UserElement } from '../models/_default/userElement'; import { ApiResponse } from '../services/api/apisauce'; import { MainStore } from './mainStore'; export declare class UserStore { main: MainStore; isPublicUser?: boolean; user?: ProfileDataExtended; userElement?: UserElement | null; organizations?: Organization[]; userSecurityGroups: Map; isSetupComplete: boolean; isSetupError?: Error; users: Map; get schemaVersion(): ElementSchemaVersion; constructor(main: MainStore); getSecurityGroups: (organization: string) => CancellablePromise; loadUser(options?: ProfileOptions): Promise; setupUserMetadata(user?: ProfileDataExtended, forceLocalOrganization?: Organization): Promise; subscribeToNotifications(handler: (notification: NotificationEvent) => void): { topic: string; reference: string; } | undefined; resetPassword(oldPassword: string, newPassword: string): Promise; getUsers(this: UserStore, uids: string[], attributes?: EditableUserAttributes[]): Promise>; saveProfile: (data: Partial> | ChangePasswordFormData) => CancellablePromise>>; getCurrentOrganizationMembers(): Promise; changeOrganization(organization: Organization): Promise; loadUserElement: () => CancellablePromise; loadOrganizations: () => CancellablePromise; setOrganization: (id: string) => CancellablePromise; get organization(): Organization; get organizationConfig(): OrganizationConfiguration; logout(): Promise; }