import { GrumpkinAddress } from '@polyaztec/barretenberg/address';
import { BridgeCallData } from '@polyaztec/barretenberg/bridge_call_data';
import { JoinSplitProver, ProofData } from '@polyaztec/barretenberg/client_proofs';
import { Grumpkin } from '@polyaztec/barretenberg/ecc';
import { NoteAlgorithms } from '@polyaztec/barretenberg/note_algorithms';
import { OffchainDefiDepositData } from '@polyaztec/barretenberg/offchain_tx_data';
import { WorldState } from '@polyaztec/barretenberg/world_state';
import { CoreDefiTx } from '../core_tx/index.js';
import { Database } from '../database/index.js';
import { Note } from '../note/index.js';
import { UserData } from '../user/index.js';
import { JoinSplitProofInput } from './proof_input.js';
export declare class DefiDepositProofCreator {
    private prover;
    private noteAlgos;
    private txFactory;
    constructor(prover: JoinSplitProver, noteAlgos: NoteAlgorithms, worldState: WorldState, grumpkin: Grumpkin, db: Database);
    createProofInput(user: UserData, bridgeCallData: BridgeCallData, depositValue: bigint, inputNotes: Note[], spendingPublicKey: GrumpkinAddress): Promise<{
        signingData: Buffer;
        tx: import("@polyaztec/barretenberg/client_proofs").JoinSplitTx;
        viewingKeys: import("@polyaztec/barretenberg/viewing_key").ViewingKey[];
        partialStateSecretEphPubKey: GrumpkinAddress | undefined;
    }>;
    createProof({ accountPublicKey, accountPrivateKey }: UserData, { tx, signature, partialStateSecretEphPubKey, viewingKeys }: JoinSplitProofInput, txRefNo: number, timeout?: number): Promise<{
        tx: CoreDefiTx;
        proofData: ProofData;
        offchainTxData: OffchainDefiDepositData;
        outputNotes: Note[];
    }>;
}
//# sourceMappingURL=defi_deposit_proof_creator.d.ts.map