import { HOTPOptions, Algorithm } from "@src/types";
import { Secret } from "./secret";
declare class HOTP {
    algorithm: Algorithm;
    counter: number;
    digits: number;
    window: number;
    issuer: string;
    account: string;
    constructor({ algorithm, window, counter, digits, issuer, account, }?: Partial<HOTPOptions>);
    get defaults(): Readonly<HOTPOptions>;
    generate({ secret, counter, algorithm, digits, }: {
        secret: Secret;
        counter?: number;
        algorithm?: Algorithm;
        digits?: number;
    }): string;
    validate({ token, secret, counter, algorithm, digits, window, }: {
        token: string;
        secret: Secret;
        counter?: number;
        algorithm?: Algorithm;
        digits?: number;
        window?: number;
    }): boolean;
    compare({ token, secret, counter, digits, algorithm, window, }: {
        token: string;
        secret: Secret;
        counter?: number;
        digits?: number;
        algorithm?: Algorithm;
        window?: number;
    }): number | null;
    equals({ token, secret, counter, algorithm, digits, }: {
        token: string;
        secret: Secret;
        counter?: number;
        algorithm?: Algorithm;
        digits?: number;
    }): boolean;
    keyUri({ secret, account, issuer, algorithm, counter, digits, }: {
        secret: Secret;
        account: string;
        issuer?: string;
        algorithm?: Algorithm;
        counter?: number;
        digits?: number;
    }): string;
}
export { HOTP };
