/** Domain-separation label. Permanent — see the header. */ export declare const VEILO_NOTE_KEY_LABEL = "veilo_note_key_v1"; /** The note spending key plus the Poseidon public key derived from it. */ export interface NoteKeypair { /** Raw 32-byte scalar, strictly below the BN254 Fr modulus. */ noteSecretKey: Uint8Array; /** Hex form, matching how the relayer has always returned this key. */ noteSecretKeyHex: string; /** Poseidon(noteSecretKey) — the note's committed owner. */ notePublicKey: bigint; /** Decimal string form, as the relayer and note scanner expect it. */ notePublicKeyString: string; } /** * Derive the note spending key from a spending-key root. * * @param spendingKey 32 bytes from `deriveSpendingKeyFromSignature` or a sibling */ export declare function deriveNoteKeyFromSpendingKey(spendingKey: Uint8Array): Uint8Array; /** * Derive the note spending key and its Poseidon public key. * * Call `initPoseidon()` once before this, as with `derivePositionKeys`. */ export declare function deriveNoteKeypairFromSpendingKey(spendingKey: Uint8Array): NoteKeypair; /** * One-shot derivation for a dapp holding only a wallet-standard `signMessage`. * * Prompts a single signature, then returns spend authority for the account. * The signature is secret material: keep it in memory, never persist it, and * never expose the result on a global. */ export declare function deriveNoteKeypairWithSigner(signMessage: (message: Uint8Array) => Promise, index?: number): Promise;