import { AuthTypes, Context, Logger, IAuthMfaProvider, AuthMfaProvider, RecoveryCodeAuthMfaProvider } from "@medusajs/framework/types";
import { AuthMfaProviderRegistrationPrefix } from "../types";
type InjectedDependencies = {
    logger?: Logger;
    [key: `${typeof AuthMfaProviderRegistrationPrefix}${string}`]: IAuthMfaProvider;
};
export default class AuthMfaProviderService {
    #private;
    protected dependencies: InjectedDependencies;
    constructor(container: InjectedDependencies);
    protected retrieveProviderRegistration(method: string): IAuthMfaProvider;
    canVerifyForAuthIdentity(method: string, data: {
        auth_identity_id: string;
    }, sharedContext?: Context): Promise<boolean>;
    verify(method: string, data: {
        auth_identity_id: string;
        code: string;
    }, sharedContext?: Context): Promise<boolean>;
    start(method: string, data: AuthTypes.AuthMfaStartDTO, sharedContext?: Context): Promise<AuthTypes.AuthMfaStartResponse>;
    verifySetup(method: string, data: AuthTypes.AuthMfaVerifyDTO, sharedContext?: Context): Promise<AuthTypes.AuthMfaDTO>;
    generateCodes(method: string, data: {
        auth_identity_id: string;
        count: number;
    }, sharedContext?: Context): Promise<string[]>;
    protected isAuthMfaProvider_(provider: IAuthMfaProvider): provider is AuthMfaProvider;
    protected isRecoveryCodeProvider_(provider: IAuthMfaProvider): provider is RecoveryCodeAuthMfaProvider;
}
export {};
//# sourceMappingURL=mfa-provider.d.ts.map