/**
 * Encoding Utilities
 * @countermeasure/web-components
 *
 * Base64 and hex encoding/decoding utilities for encryption operations.
 * Compatible with FluxEncrypt's encoding format.
 */
/**
 * Encode a Uint8Array to base64 string.
 * Uses URL-safe base64 without padding for compatibility.
 */
export declare function toBase64(data: Uint8Array): string;
/**
 * Decode a base64 string to Uint8Array.
 */
export declare function fromBase64(base64: string): Uint8Array;
/**
 * Encode a Uint8Array to hex string.
 */
export declare function toHex(data: Uint8Array): string;
/**
 * Decode a hex string to Uint8Array.
 */
export declare function fromHex(hex: string): Uint8Array;
/**
 * Encode a string to Uint8Array using UTF-8.
 */
export declare function stringToBytes(str: string): Uint8Array;
/**
 * Decode a Uint8Array to string using UTF-8.
 */
export declare function bytesToString(bytes: Uint8Array): string;
/**
 * Encode data with format prefix for self-describing ciphertext.
 * Format: [1 byte version][12 bytes IV][16 bytes tag][N bytes ciphertext]
 */
export declare function encodeEncryptedData(iv: Uint8Array, ciphertext: Uint8Array): Uint8Array;
/**
 * Decode encrypted data from combined format.
 * Returns { iv, ciphertext } or throws on invalid format.
 */
export declare function decodeEncryptedData(data: Uint8Array): {
    iv: Uint8Array;
    ciphertext: Uint8Array;
};
/**
 * Compare two Uint8Arrays in constant time to prevent timing attacks.
 */
export declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
/**
 * Securely clear a Uint8Array by overwriting with zeros.
 * Note: JavaScript doesn't guarantee memory clearing, but this is best effort.
 */
export declare function zeroize(data: Uint8Array): void;
/**
 * Concatenate multiple Uint8Arrays.
 */
export declare function concat(...arrays: Uint8Array[]): Uint8Array;
//# sourceMappingURL=encoding.d.ts.map