import { AxiosResponse } from 'axios';
import { Config } from './config';
import Request from './request';
export declare enum MfaType {
    EMAIL = "email",
    SMS = "sms",
    APP = "app"
}
export interface MfaData {
    owner: string;
    mfaType: MfaType;
    name: string;
}
export interface CasdoorMfaProps {
    enabled?: boolean;
    isPreferred?: boolean;
    mfaType?: string;
    secret?: string;
    countryCode?: string;
    url?: string;
    recoveryCodes?: string;
}
export declare class MfaSDK {
    private config;
    private readonly request;
    constructor(config: Config, request: Request);
    private prepareMfaPayload;
    initiate(data: MfaData): Promise<AxiosResponse<{
        data: CasdoorMfaProps;
    }, any>>;
    verify(data: MfaData, passcode: string): Promise<AxiosResponse<{
        data: string;
    }, any>>;
    enable(data: MfaData, cookie?: any): Promise<AxiosResponse<{
        data: string;
    }, any>>;
    setPreferred(data: MfaData): Promise<AxiosResponse<{
        data: CasdoorMfaProps[];
    }, any>>;
    delete(owner: string, name: string): Promise<AxiosResponse<{
        data: CasdoorMfaProps[];
    }, any>>;
}
