import { Keypair, PublicKey } from "@solana/web3.js"; import type { NewPositionKeys, PositionNotePayload } from "./types.js"; export interface PositionKeyMaterial { positionSecretN: bigint; positionBlinding: bigint; positionPubkey: bigint; positionPdaKeyBytes: Uint8Array; } export interface PositionKeyBundle { material: PositionKeyMaterial; claimant: Keypair; position: NewPositionKeys; } /** Derive the exact Poseidon key material used by private position notes. */ export declare function derivePositionKeys(spendingKey: Uint8Array, index: number): PositionKeyMaterial; /** Deterministic claimant required to close or merge a position. */ export declare function derivePositionClaimantKeypair(spendingKey: Uint8Array, positionPdaKeyBytes: Uint8Array): Keypair; /** Derive both local secret material and the public request payload. */ export declare function derivePositionKeyBundle(spendingKey: Uint8Array, index: number): PositionKeyBundle; /** Serialize a returned open/merge position into the relayer's close shape. */ export declare function createPositionNotePayload(params: { amount: bigint | string; commitment: Uint8Array | string; leafIndex: number; mint: PublicKey | string; isToken2022: boolean; treeId?: number; keys: PositionKeyMaterial; }): PositionNotePayload;