import { type TArg, type TRet } from "../utils.js";
import type { KupynaBase, KupynaDerived } from "./kupyna.js";
/** Abstract class for Kupyna KMAC */
export declare abstract class KupynaKMAC<T, H extends (KupynaBase<H> | KupynaDerived<H>)> {
    key: TArg<Uint8Array>;
    readonly outputLen: number;
    readonly blockLen: number;
    readonly threshold: number;
    h: H;
    ik: Uint8Array;
    len: bigint;
    constructor(hash: () => H, kpad: TArg<Uint8Array>, key: TArg<Uint8Array>);
    /** Clone hash instance */
    abstract clone(): KupynaKMAC<T, H>;
    /** Update hash buffer */
    update(data: TArg<Uint8Array>): T;
    /** Finalize hash computation and return result as Uint8Array */
    digest(): TRet<Uint8Array>;
    private final;
}
