import { AbstractCryptoModule } from 'expo-crypto-universal';

/**
 * A module that provides cryptographic operations using the Web Crypto API.
 * This implementation is compatible with both browser and Node.js environments.
 */
export declare class WebCryptoModule extends AbstractCryptoModule {
    /**
     * Fills the provided Uint8Array with cryptographically strong random values.
     * @param array - The Uint8Array to fill with random values.
     * @returns The same Uint8Array, filled with random values.
     */
    getRandomValues(array: Uint8Array): Uint8Array;
    /**
     * Computes the SHA-256 hash of the provided data.
     * @param data - The data to hash.
     * @returns A Promise that resolves to a Uint8Array containing the hash.
     */
    sha256Async(data: Uint8Array): Promise<Uint8Array>;
    /**
     * Computes the SHA-384 hash of the provided data.
     * @param data - The data to hash.
     * @returns A Promise that resolves to a Uint8Array containing the hash.
     */
    sha384Async(data: Uint8Array): Promise<Uint8Array>;
    /**
     * Computes the SHA-512 hash of the provided data.
     * @param data - The data to hash.
     * @returns A Promise that resolves to a Uint8Array containing the hash.
     */
    sha512Async(data: Uint8Array): Promise<Uint8Array>;
}

export declare const webCryptoModule: WebCryptoModule;

export { }
