import type { KdfInterface } from "../interfaces/kdfInterface.js";
import { KdfId } from "../identifiers.js";
import { NativeAlgorithm } from "../algorithm.js";
export declare class HkdfNative extends NativeAlgorithm implements KdfInterface {
    readonly id: KdfId;
    readonly hashSize: number;
    protected _suiteId: Uint8Array;
    protected readonly algHash: HmacKeyGenParams;
    constructor();
    init(suiteId: Uint8Array): void;
    buildLabeledIkm(label: Uint8Array, ikm: Uint8Array): Uint8Array;
    buildLabeledInfo(label: Uint8Array, info: Uint8Array, len: number): Uint8Array;
    extract(salt: ArrayBuffer, ikm: ArrayBuffer): Promise<ArrayBuffer>;
    expand(prk: ArrayBuffer, info: ArrayBuffer, len: number): Promise<ArrayBuffer>;
    extractAndExpand(salt: ArrayBuffer, ikm: ArrayBuffer, info: ArrayBuffer, len: number): Promise<ArrayBuffer>;
    labeledExtract(salt: ArrayBuffer, label: Uint8Array, ikm: Uint8Array): Promise<ArrayBuffer>;
    labeledExpand(prk: ArrayBuffer, label: Uint8Array, info: Uint8Array, len: number): Promise<ArrayBuffer>;
    protected _checkInit(): void;
}
export declare class HkdfSha256Native extends HkdfNative {
    /** KdfId.HkdfSha256 (0x0001) */
    id: KdfId;
    /** 32 */
    hashSize: number;
    /** The parameters for Web Cryptography API */
    algHash: HmacKeyGenParams;
}
export declare class HkdfSha384Native extends HkdfNative {
    /** KdfId.HkdfSha384 (0x0002) */
    id: KdfId;
    /** 48 */
    hashSize: number;
    /** The parameters for Web Cryptography API */
    algHash: HmacKeyGenParams;
}
export declare class HkdfSha512Native extends HkdfNative {
    /** KdfId.HkdfSha512 (0x0003) */
    id: KdfId;
    /** 64 */
    hashSize: number;
    /** The parameters for Web Cryptography API */
    algHash: HmacKeyGenParams;
}
//# sourceMappingURL=hkdf.d.ts.map