/// <reference types="node" resolution-mode="require"/>
import { ProofData } from '@polyaztec/barretenberg/client_proofs';
import { OffchainAccountData, OffchainDefiDepositData, OffchainJoinSplitData } from '@polyaztec/barretenberg/offchain_tx_data';
import { Tx } from '@polyaztec/barretenberg/rollup_provider';
import { CoreAccountTx, CoreAccountTxJson, CoreDefiTx, CoreDefiTxJson, CorePaymentTx, CorePaymentTxJson } from '../core_tx/index.js';
import { Note, NoteJson } from '../note/index.js';
export interface ProofOutput {
    tx: CorePaymentTx | CoreAccountTx | CoreDefiTx;
    proofData: ProofData;
    offchainTxData: OffchainJoinSplitData | OffchainAccountData | OffchainDefiDepositData;
    outputNotes: Note[];
    signature?: Buffer;
}
export interface ProofOutputJson {
    tx: CorePaymentTxJson | CoreAccountTxJson | CoreDefiTxJson;
    proofData: Uint8Array;
    offchainTxData: Uint8Array;
    outputNotes: NoteJson[];
    signature?: Uint8Array;
}
export declare const proofOutputToJson: ({ tx, proofData, offchainTxData, outputNotes, signature, }: ProofOutput) => ProofOutputJson;
export declare const proofOutputFromJson: ({ tx, proofData, offchainTxData, outputNotes, signature, }: ProofOutputJson) => ProofOutput;
export declare const proofOutputToProofTx: ({ proofData, offchainTxData, signature }: ProofOutput) => Tx;
//# sourceMappingURL=proof_output.d.ts.map