/**
 * Poseidon felt252 primitives — thin placeholder for ZK-friendly hashing.
 *
 * Uses starknet.js `hash.computePoseidonHashOnElements` (same primitive
 * already used in vauban-proof-core) when the starknet peer dep is present.
 *
 * If starknet is absent at runtime, falls back to a deterministic BigInt XOR
 * chain that preserves all algebraic separation properties required by the
 * HDNT nullifier hierarchy tests — while flagging loudly that this is NOT
 * suitable for production ZK proofs.
 *
 * Production path: the Rust HDNT crate (`vauban-privacy-protocol/crates/hdnt/`)
 * exposes the authoritative felt252-correct derivation. This TypeScript module
 * is the agent-SDK integration shim, not the canonical implementation.
 *
 * @module privacy/poseidon-felt252
 */
/** Clamp a BigInt into [0, FELT252_PRIME). */
export declare function feltMod(x: bigint): bigint;
/**
 * Poseidon hash of a sequence of felt252 BigInt values.
 *
 * Delegates to starknet.js `hash.computePoseidonHashOnElements` when the peer
 * dep is available. Falls back to the deterministic placeholder otherwise.
 *
 * @param elements - Sequence of felt252 values (BigInt, 0 ≤ x < FELT252_PRIME).
 * @returns Felt252 value as BigInt.
 */
export declare function poseidonHashBigInt(elements: bigint[]): bigint;
/**
 * Encode a UTF-8 domain label as a felt252 BigInt for use in derivation paths.
 * Uses big-endian byte encoding; truncates to 31 bytes (felt252-safe).
 */
export declare function labelToFelt(label: string): bigint;
//# sourceMappingURL=poseidon-felt252.d.ts.map