type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array | Float32Array | Float64Array;
type HashTypes = 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512';
type Hash = HashTypes | {
    name: HashTypes;
};
export interface HmacKeyGenParams {
    name: 'HMAC';
    hash: Hash;
    length?: number;
}
export type KeyUsages = 'encrypt' | 'decrypt' | 'sign' | 'verify' | 'deriveKey' | 'deriveBits' | 'wrapKey' | 'unwrapKey';
declare const parent_: unique symbol;
declare const native_: unique symbol;
declare const algorithm_: unique symbol;
declare const usages_: unique symbol;
declare const extractable_: unique symbol;
declare const type_: unique symbol;
declare const privateKey_: unique symbol;
declare const publicKey_: unique symbol;
export declare class CryptoKey {
    [parent_]: any;
    [native_]: any;
    [algorithm_]: any;
    [usages_]: any;
    [extractable_]: any;
    [type_]: any;
    get algorithm(): any;
    get usages(): any;
    get extractable(): any;
    get type(): any;
    static fromNative(key: any): CryptoKey;
}
export declare class CryptoKeyPair {
    [native_]: any;
    [privateKey_]: any;
    [publicKey_]: any;
    get privateKey(): any;
    get publicKey(): any;
    static fromNative(keyPair: any): CryptoKeyPair;
}
interface RsaOaepParams {
    name: 'RSA-OAEP';
    label?: TypedArray | ArrayBuffer;
}
interface RsaHashedKeyGenParams {
    name: 'RSA-OAEP';
    modulusLength: number;
    publicExponent: Uint8Array;
    hash: Hash;
}
export declare class SubtleCrypto {
    digest(algorithm: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512', data: TypedArray | ArrayBuffer): Promise<unknown>;
    encrypt(algorithm: RsaOaepParams, key: CryptoKey, data: TypedArray | ArrayBuffer): Promise<unknown>;
    decrypt(algorithm: RsaOaepParams, key: CryptoKey, data: TypedArray | ArrayBuffer): Promise<unknown>;
    sign(algorithm: {
        name: 'HMAC';
    } | 'HMAC', key: CryptoKey, data: TypedArray | ArrayBuffer): Promise<unknown>;
    verify(algorithm: {
        name: 'HMAC';
    } | 'HMAC', key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer): Promise<unknown>;
    generateKey(algorithm: HmacKeyGenParams | RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsages[]): Promise<unknown>;
}
export {};
