import { Momentum } from './momentum';
export type TotpMethods = 'app' | 'call' | 'email' | 'sms';
/** Mange user 2FA */
export declare class Totp {
    protected momentum: Momentum;
    constructor(momentum: Momentum);
    /**
     * Set default 2FA method
     * @param {string} username User to set 2FA method on
     * @param {string} method Default method, must be either: app, call, email, sms
     * @returns {Promise<void>} Returns once complete
     */
    default(username: string, method?: string): import('@ztimson/utils').PromiseProgress<void>;
    /**
     * Disable 2FA for user
     * @param {string} username User to disable 2FA for
     * @param password Confirm user password (Not required as admin)
     * @return {Promise<void>} Resolves once complete
     */
    disable(username: string, password?: string): import('@ztimson/utils').PromiseProgress<void>;
    /**
     * Enable 2FA for user
     * @param {string} username User to reset
     * @return {Promise<void>} Resolves once complete
     */
    enable: (username: string, password?: string) => Promise<void>;
    /**
     * Reset users 2FA
     * @param {string} username User to reset
     * @param password Confirm user password (Not required as admin)
     * @return {Promise<void>} Resolves once complete
     */
    reset(username: string, password?: string): Promise<void>;
    /**
     * Fetch TOTP secret to set up authenticator
     * @param {string} username
     * @param password Confirm user password (Not required as admin)
     * @returns {Promise<{secret: string, qr: string}>}
     */
    secret(username: string, password?: string): Promise<{
        secret: string;
        qr: string;
    }>;
}
//# sourceMappingURL=totp.d.ts.map