import { AuthMfaProvider, AuthTypes, Context, DAL, ModulesSdkTypes } from "@medusajs/framework/types";
import { AuthMfaFactor } from "../../models";
import { TotpMfaProviderOptions } from "../../types";
type InjectedDependencies = {
    baseRepository: DAL.RepositoryService;
    authMfaFactorService: ModulesSdkTypes.IMedusaInternalService<typeof AuthMfaFactor>;
};
type TotpConfig = {
    issuer: string;
    digits: number;
    period: number;
    window: number;
};
export declare class TotpMfaProvider implements AuthMfaProvider {
    private readonly options_;
    static identifier: string;
    readonly method: string;
    protected baseRepository_: DAL.RepositoryService;
    protected authMfaFactorService_: ModulesSdkTypes.IMedusaInternalService<typeof AuthMfaFactor>;
    constructor({ baseRepository, authMfaFactorService }: InjectedDependencies, options_?: TotpMfaProviderOptions);
    canVerifyForAuthIdentity(data: {
        auth_identity_id: string;
    }, sharedContext?: Context): Promise<boolean>;
    start(data: AuthTypes.AuthMfaStartDTO, sharedContext?: Context): Promise<AuthTypes.AuthMfaStartResponse>;
    verifySetup(data: AuthTypes.AuthMfaVerifyDTO, sharedContext?: Context): Promise<AuthTypes.AuthMfaDTO>;
    verify(data: {
        auth_identity_id: string;
        code: string;
    }, sharedContext?: Context): Promise<boolean>;
    protected serializeFactor_(factor: any): Promise<AuthTypes.AuthMfaDTO>;
    private verifyCode_;
    protected getEncryptionKey_(): string;
    protected getTotpConfig_(): TotpConfig;
}
export {};
//# sourceMappingURL=totp.d.ts.map