import { Client } from "../../matrix/Client.js"; import { Options as BaseOptions, ViewModel } from "../ViewModel"; import { PasswordLoginViewModel } from "./PasswordLoginViewModel"; import { StartSSOLoginViewModel } from "./StartSSOLoginViewModel"; import { CompleteSSOLoginViewModel } from "./CompleteSSOLoginViewModel"; import { StartOIDCLoginViewModel } from "./StartOIDCLoginViewModel.js"; import { CompleteOIDCLoginViewModel } from "./CompleteOIDCLoginViewModel.js"; import { SessionLoadViewModel } from "../SessionLoadViewModel.js"; import { SegmentType } from "../navigation/index"; import type { PasswordLoginMethod, SSOLoginHelper, TokenLoginMethod, ILoginMethod } from "../../matrix/login"; type Options = { defaultHomeserver: string; ready: ReadyFn; oidc?: SegmentType["oidc"]; loginToken?: string; } & BaseOptions; export declare class LoginViewModel extends ViewModel { private _ready; private _loginToken?; private _client; private _oidc?; private _loginOptions?; private _passwordLoginViewModel?; private _startSSOLoginViewModel?; private _completeSSOLoginViewModel?; private _startOIDCLoginViewModel?; private _startOIDCGuestLoginViewModel?; private _completeOIDCLoginViewModel?; private _loadViewModel?; private _loadViewModelSubscription?; private _homeserver; private _queriedHomeserver?; private _abortHomeserverQueryTimeout?; private _abortQueryOperation?; private _hideHomeserver; private _isBusy; private _errorMessage; constructor(options: Readonly); get passwordLoginViewModel(): PasswordLoginViewModel | undefined; get startSSOLoginViewModel(): StartSSOLoginViewModel | undefined; get completeSSOLoginViewModel(): CompleteSSOLoginViewModel | undefined; get startOIDCLoginViewModel(): StartOIDCLoginViewModel; get startOIDCGuestLoginViewModel(): StartOIDCLoginViewModel; get completeOIDCLoginViewModel(): CompleteOIDCLoginViewModel; get homeserver(): string; get resolvedHomeserver(): string | undefined; get errorMessage(): string; get showHomeserver(): boolean; get loadViewModel(): SessionLoadViewModel; get isBusy(): boolean; get isFetchingLoginOptions(): boolean; goBack(): void; private _initViewModels; private _showPasswordLogin; private _showSSOLogin; private _showOIDCLogin; private _showOIDCGuestLogin; private _showError; private _setBusy; attemptLogin(loginMethod: ILoginMethod): Promise; private _createLoadViewModel; private _disposeViewModels; setHomeserver(newHomeserver: string): Promise; queryHomeserver(): Promise; dispose(): void; } type ReadyFn = (client: Client) => void; export type LoginOptions = { homeserver: string; password?: (username: string, password: string) => PasswordLoginMethod; sso?: SSOLoginHelper; oidc?: { issuer: string; guestAvailable: boolean; }; token?: (loginToken: string) => TokenLoginMethod; }; export {};