import { EncryptedBlob, P256PublicKeyCoordinates, WrappedSecretClass, WrappedSecretPolicy, WrappedSecretV1 } from './types.js'; type V3Purpose = "this.me/blob/v3/branch" | "this.me/blob/v3/value" | "this.me/blob/v3/enc" | "this.me/blob/v3/mac"; type V3BlobMode = "branch" | "value"; export type BlobV3DerivedKeys = { encKey: Uint8Array; macKey: Uint8Array; pathContext: Uint8Array; }; type BlobCryptoDebugWindow = { encryptCalls: number; decryptCalls: number; totalEncryptJsonMs: number; totalEncryptAsciiMs: number; totalEncryptKeystreamMs: number; totalEncryptXorMs: number; totalEncryptEncodeMs: number; maxEncryptJsonMs: number; maxEncryptAsciiMs: number; maxEncryptKeystreamMs: number; maxEncryptXorMs: number; maxEncryptEncodeMs: number; maxJsonBytes: number; maxClearBytes: number; maxKeystreamBytes: number; maxCiphertextBytes: number; maxHexBytes: number; maxEncryptResidentBytes: number; maxDecodedBytes: number; maxDecryptClearBytes: number; maxDecryptJsonBytes: number; maxDecryptResidentBytes: number; maxEncryptHeapDelta: number; maxEncryptExternalDelta: number; maxEncryptArrayBuffersDelta: number; maxDecryptHeapDelta: number; maxDecryptExternalDelta: number; maxDecryptArrayBuffersDelta: number; }; export declare function enableBlobCryptoDebug(enabled?: boolean): void; export declare function takeBlobCryptoDebugWindow(): BlobCryptoDebugWindow; export declare function asciiToBytes(str: string): Uint8Array; export declare function hexToBytes(hex: string): Uint8Array; export declare function bytesToHex(buf: Uint8Array): `0x${string}`; export declare function deriveBlobV3Keys(chain: Uint8Array[], mode: V3BlobMode, path: string[]): BlobV3DerivedKeys; export declare function deriveSecretMaterialV3(chain: Uint8Array[], purpose: V3Purpose): Uint8Array; export declare function detectBlobVersion(blob: EncryptedBlob): "v3" | "v2" | "legacy"; export declare function encryptBlobV3(value: any, chain: Uint8Array[], mode: V3BlobMode, path: string[]): EncryptedBlob; export declare function encryptBlobV3WithDerivedKeys(value: any, keys: BlobV3DerivedKeys): EncryptedBlob; export declare function decryptBlobV3(blob: EncryptedBlob, chain: Uint8Array[], mode: V3BlobMode, path: string[]): any; export declare function decryptBlobV3WithDerivedKeys(blob: EncryptedBlob, keys: BlobV3DerivedKeys): any; export declare function xorEncrypt(value: any, secret: string, path: string[]): EncryptedBlob; export declare function xorDecrypt(hex: string, secret: string, path: string[]): any; export declare function isEncryptedBlob(v: any): v is EncryptedBlob; export declare function bytesToBase64Url(bytes: Uint8Array): string; export declare function base64UrlToBytes(input: string): Uint8Array; export declare function normalizeProofMessage(value: unknown): string; export declare function deriveHkdfBytes(ikm: Uint8Array, salt: string, info: string, length?: number): Promise; export declare function deriveBranchProofSeed(seedHex: string, expression: string): Promise; export declare function importEd25519SigningKey(seed32: Uint8Array): Promise; export declare function signEd25519Proof(privateKey: CryptoKey, message: string): Promise; export declare function verifyEd25519Signature(publicKey: string, message: string, signature: string): Promise; export declare function exportEd25519PublicKey(publicKey: CryptoKey): Promise; export declare function generateP256KeyPair(extractable?: boolean, usages?: KeyUsage[]): Promise; export declare function exportP256PublicKey(key: CryptoKey): Promise; export declare function importP256PublicKey(publicKey: P256PublicKeyCoordinates): Promise; export declare function wrapSecretV1(input: { secret: Uint8Array | string; recipientPublicKey: CryptoKey | P256PublicKeyCoordinates; kid: string; class: WrappedSecretClass; publicKey?: P256PublicKeyCoordinates; policy?: WrappedSecretPolicy; }): Promise; export declare function unwrapSecretV1(envelope: WrappedSecretV1, recipientPrivateKey: CryptoKey, output?: "bytes" | "utf8"): Promise; export {};