import { MainStateManager } from '../MainStateManager';
import { ModelLogin } from './ModelLogin';
import { TabPageData } from '../Page/Tab/TabData';
import { IData } from '../Data';
import { SelfMobileNumber } from '../SelfModels/SelfMobileNumber';
import { SelfNumber } from '../SelfModels/SelfNumber';
import { SelfString } from '../SelfModels/SelfString';
import { SelfCheckTree } from '../SelfModels/SelfCheckTree';
interface IResult {
    userName: string;
    password: string;
    languageId: number;
    mobileNumber: string;
    captcha: string;
}
interface ILogin {
    userName: SelfString;
    password: SelfString;
    rememberMe: SelfCheckTree;
    mobileNumber: SelfMobileNumber;
    captchaCode: SelfNumber;
    codeSMS: SelfNumber;
    result: IResult;
}
interface ILoginResponse {
    isSuccess: boolean;
    data: {
        id: number;
        roles: string[];
        accessToken: string;
        userName: string;
        firstName: string;
        lastName: string;
        smallPicture: string;
        picture: string;
        attachedData: IData[];
    };
    message: string;
}
export type StateType = 'none' | 'loading' | 'error' | 'invalid';
export declare class Login extends ModelLogin {
    #private;
    loadingState: StateType;
    imageOfcaptcha: string;
    imageOfCaptchaLoadingState: 'loading' | 'loaded' | 'error';
    sessionId: string;
    timer: boolean;
    initializeListener: boolean;
    initializeVerifyListener: boolean;
    messageRoot?: 'UserNameOrPasswordIsNotValid' | 'MobileNumberIsNotValid' | 'CaptchaCodeIsNotValid' | 'AuthenticationCodeExpired' | 'AuthenticationCodeIsNotValid';
    pageData: TabPageData;
    startToAccepting: () => void;
    afterSaveSuccessed: (data: ILoginResponse) => void;
    get mobileNumber(): SelfMobileNumber;
    setMobileNumber: (e: SelfMobileNumber) => void;
    get captchaCode(): SelfNumber;
    set captchaCode(value: SelfNumber);
    setCaptchaCode: (e: string) => void;
    get codeSMS(): SelfNumber;
    setCodeSMS: (e: string) => void;
    get userName(): SelfString;
    setUserName: (e: SelfString) => void;
    get firstName(): SelfString;
    setFirstName: (e: SelfString) => void;
    get lastName(): SelfString;
    setLastName: (e: SelfString) => void;
    get password(): SelfString;
    setPasswor: (e: SelfString) => void;
    get verifyPassword(): SelfString;
    setVerifyPassword: (e: SelfString) => void;
    isPasswordsMatch: () => boolean;
    get languageId(): number;
    setLanguageId: (e: number) => void;
    get rememberMe(): SelfCheckTree;
    setRememberMe: (e: SelfCheckTree) => void;
    get result(): {
        userName: string;
        password: string;
        languageId: number;
        mobileNumber: string;
        captcha: any;
    };
    static empty(): ILogin;
    static buildNew(mainStateManager: MainStateManager): Login;
}
export {};
