import { IEnvironment } from '@baosight/ei';
import { IAppInfo, ICompanyInfo } from '../model/data';
interface IUserCredentials {
    UserName: string;
    Password: string;
    VerificationCode: string;
    RememberMe: boolean;
    RememberMeTime?: number;
    CompanyCode: string;
    CompanyName: string;
    AppName: string;
    LoginOnly?: boolean;
    keyword?: string;
}
interface BwInfo {
    tokenInfo?: string;
    keyword?: string;
}
type LoginStatus = 'LOGIN' | 'LOGOUT' | 'CLOSE_OTHER_TABS' | '';
export default class EFM {
    static apps: any[];
    static companies: any[];
    static currentEnvironment: IEnvironment;
    static loginStatus: string;
    static formState: {
        authButtons?: {
            [key: string]: any;
        }[];
        formInfo?: {
            [key: string]: any;
        };
        formParamInfo?: {
            baseFormName: string;
            params: {
                [key: string]: any;
            };
        };
        formData?: {
            [key: string]: any;
        };
        buttonData?: {
            [key: string]: any;
        }[];
        buttonLoaded?: boolean;
        hasAuthority: boolean;
    };
    static setLoginStatus(loginStatus: LoginStatus): void;
    static getCurLoginStatus(): string;
    static changeLoginStatus(status: any): void;
    static LOGIN(user: IUserCredentials): Promise<any>;
    static GET_USER(user: IUserCredentials): Promise<boolean>;
    static GET_MENUS(menuConfig: {
        USERID: string;
        ROOT: string;
        FAVORITE: string;
        APPNAME: string;
        COMPANYCODE: string;
    }): Promise<any>;
    static GET_COMPANIES(Culture?: string): Promise<ICompanyInfo[]>;
    static GET_APPS(Culture?: string): Promise<IAppInfo[]>;
    static INITAPP_CONFIG(Culture?: string): Promise<void | IEnvironment>;
    static LOGOUT(): Promise<boolean>;
    static exchangeSignature(bwToken: BwInfo): Promise<any>;
    static wechatLogin(wechatCode: string, remarksObj?: object): Promise<any>;
    static getSDKSignature(url: string): Promise<any>;
    static CHECK_AUTH(form: {
        formname: string;
        appname: string;
        path?: string;
        loginName: string;
    }): Promise<any>;
    static LOGIN_CHECK(modify: {
        KEYVALUE: string;
        NEW_KEYVALUE: string;
        NEW_KEYVALUE_AGAIN: string;
        APPNAME: string;
        ENAME: string;
    }): Promise<any>;
}
export {};
