/// <reference types="node" resolution-mode="require"/>
import { GrumpkinAddress } from '@polyaztec/barretenberg/address';
import { AccountTx, JoinSplitTx } from '@polyaztec/barretenberg/client_proofs';
import { SchnorrSignature } from '@polyaztec/barretenberg/crypto';
import { NoteAlgorithms } from '@polyaztec/barretenberg/note_algorithms';
import { ViewingKey } from '@polyaztec/barretenberg/viewing_key';
import { JoinSplitTxInput } from './proof_input/index.js';
export interface AccountProofInput {
    tx: AccountTx;
    signingData: Buffer;
    signature?: SchnorrSignature;
}
export interface AccountProofInputJson {
    tx: Uint8Array;
    signingData: Uint8Array;
    signature?: string;
}
export declare const accountProofInputToJson: ({ tx, signingData, signature }: AccountProofInput) => AccountProofInputJson;
export declare const accountProofInputFromJson: ({ tx, signingData, signature, }: AccountProofInputJson) => AccountProofInput;
export interface JoinSplitProofInput {
    tx: JoinSplitTx;
    viewingKeys: ViewingKey[];
    partialStateSecretEphPubKey?: GrumpkinAddress;
    signingData: Buffer;
    signature?: SchnorrSignature;
}
export interface JoinSplitProofInputJson {
    tx: Uint8Array;
    viewingKeys: string[];
    partialStateSecretEphPubKey?: string;
    signingData: Uint8Array;
    signature?: string;
}
export declare const joinSplitProofInputToJson: ({ tx, viewingKeys, partialStateSecretEphPubKey, signingData, signature, }: JoinSplitProofInput) => JoinSplitProofInputJson;
export declare const joinSplitProofInputFromJson: ({ tx, viewingKeys, partialStateSecretEphPubKey, signingData, signature, }: JoinSplitProofInputJson) => JoinSplitProofInput;
export declare const joinSplitTxInputToJoinSplitTx: (txInput: JoinSplitTxInput, accountPrivateKey: Buffer, accountPublicKey: GrumpkinAddress) => JoinSplitTx;
export declare const joinSplitTxToJoinSplitTxInput: (tx: JoinSplitTx, accountPrivateKey: Buffer, noteAlgos: NoteAlgorithms) => JoinSplitTxInput;
//# sourceMappingURL=proof_input.d.ts.map