export interface SubtleCryptoBackend { generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise; importKey(format: 'jwk', keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise; exportKey(format: Exclude, key: CryptoKey): Promise; digest(algorithm: AlgorithmIdentifier, data: Uint8Array): Promise; sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: Uint8Array): Promise; verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: Uint8Array, data: Uint8Array): Promise; getRandomValues(len: number): Uint8Array; } export declare const getDefaultSubtleCryptoBackend: () => SubtleCryptoBackend | null; export declare function isWindowSubtleCryptoAvailable(): boolean; export declare class WindowSubtleCryptoBackend implements SubtleCryptoBackend { constructor(); generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise; importKey(format: 'jwk', keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise; exportKey(format: Exclude, key: CryptoKey): Promise; digest(algorithm: AlgorithmIdentifier, data: Uint8Array): Promise; sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: Uint8Array): Promise; verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: Uint8Array, data: Uint8Array): Promise; getRandomValues(len: number): Uint8Array; }