import React, { ReactNode } from "react";
import { ValidatedServerConfig } from "../../../utils/ValidatedServerConfig";
declare enum Phase {
    EnterEmail = 1,
    SendingEmail = 2,
    EmailSent = 3,
    PasswordInput = 4,
    ResettingPassword = 5,
    Done = 6
}
interface Props {
    serverConfig: ValidatedServerConfig;
    onLoginClick: () => void;
    onComplete: () => void;
}
interface State {
    phase: Phase;
    email: string;
    password: string;
    password2: string;
    errorText: string | ReactNode | null;
    serverIsAlive: boolean;
    serverDeadError: string;
    logoutDevices: boolean;
}
export default class ForgotPassword extends React.Component<Props, State> {
    private reset;
    private fieldPassword;
    private fieldPasswordConfirm;
    constructor(props: Props);
    componentDidUpdate(prevProps: Readonly<Props>): void;
    private checkServerLiveliness;
    private onPhaseEmailInputSubmit;
    private sendVerificationMail;
    private handleError;
    private onPhaseEmailSentSubmit;
    private set phase(value);
    private verifyFieldsBeforeSubmit;
    private onPhasePasswordInputSubmit;
    private onSubmitForm;
    private onInputChanged;
    renderEnterEmail(): JSX.Element;
    renderConfirmLogoutDevicesDialog(): Promise<boolean>;
    renderCheckEmail(): JSX.Element;
    renderSetPassword(): JSX.Element;
    renderDone(): JSX.Element;
    render(): React.ReactNode;
}
export {};
