/// <reference types="node" resolution-mode="require"/>
import { AliasHash } from '@polyaztec/barretenberg/account_id';
import { EthAddress, GrumpkinAddress } from '@polyaztec/barretenberg/address';
import { JoinSplitTx } from '@polyaztec/barretenberg/client_proofs';
import { HashPath } from '@polyaztec/barretenberg/merkle_tree';
import { ClaimNoteTxData } from '@polyaztec/barretenberg/note_algorithms';
import { Note, NoteJson } from '../../note/index.js';
export interface JoinSplitTxInput {
    proofId: number;
    publicValue: bigint;
    publicOwner: EthAddress;
    inputNotes: Note[];
    outputNotes: Note[];
    claimNote: ClaimNoteTxData;
    spendingPublicKey: GrumpkinAddress;
    aliasHash: AliasHash;
    accountIndex: number;
    accountPath: HashPath;
    dataRoot: Buffer;
    backwardLink: Buffer;
    allowChain: number;
}
export interface JoinSplitTxInputJson {
    proofId: number;
    publicValue: string;
    publicOwner: string;
    inputNotes: NoteJson[];
    outputNotes: NoteJson[];
    claimNote: Uint8Array;
    spendingPublicKey: string;
    aliasHash: string;
    accountIndex: number;
    accountPath: Uint8Array;
    dataRoot: Uint8Array;
    backwardLink: Uint8Array;
    allowChain: number;
}
export declare const joinSplitTxInputToJson: ({ publicValue, publicOwner, inputNotes, outputNotes, claimNote, spendingPublicKey, aliasHash, accountPath, dataRoot, backwardLink, ...rest }: JoinSplitTxInput) => JoinSplitTxInputJson;
export declare const joinSplitTxInputFromJson: ({ publicValue, publicOwner, inputNotes, outputNotes, claimNote, spendingPublicKey, aliasHash, accountPath, dataRoot, backwardLink, ...rest }: JoinSplitTxInputJson) => JoinSplitTxInput;
export declare const toJoinSplitTx: (tx: JoinSplitTxInput, accountPrivateKey: Buffer) => JoinSplitTx;
//# sourceMappingURL=join_split_tx_input.d.ts.map