import { Buffer } from '@craftzdog/react-native-buffer';
import type { BinaryLike } from './utils';
import type { CryptoKey } from './keys';
type KeyMaterial = BinaryLike;
type Salt = BinaryLike;
type Info = BinaryLike;
export interface HkdfAlgorithm {
    name: string;
    hash: string | {
        name: string;
    };
    salt: BinaryLike;
    info: BinaryLike;
}
export interface HkdfCallback {
    (err: Error | null, derivedKey?: Buffer): void;
}
export declare function hkdf(digest: string, key: KeyMaterial, salt: Salt, info: Info, keylen: number, callback: HkdfCallback): void;
export declare function hkdfSync(digest: string, key: KeyMaterial, salt: Salt, info: Info, keylen: number): Buffer;
export declare function hkdfExtractSync(digest: string, ikm: KeyMaterial, salt?: Salt): Buffer;
export declare function hkdfExtract(digest: string, ikm: KeyMaterial, salt: Salt, callback: HkdfCallback): void;
export declare function hkdfExpandSync(digest: string, prk: KeyMaterial, info: Info, keylen: number): Buffer;
export declare function hkdfExpand(digest: string, prk: KeyMaterial, info: Info, keylen: number, callback: HkdfCallback): void;
export declare function hkdfDeriveBits(algorithm: HkdfAlgorithm, baseKey: CryptoKey, length: number): ArrayBuffer;
export {};
//# sourceMappingURL=hkdf.d.ts.map