/// <reference types="node" resolution-mode="require"/>
import { EthAddress, GrumpkinAddress } from '@polyaztec/barretenberg/address';
import { AssetValue } from '@polyaztec/barretenberg/asset';
import { EthereumProvider } from '@polyaztec/barretenberg/blockchain';
import { TxId } from '@polyaztec/barretenberg/tx_id';
import { ClientEthereumBlockchain } from '@polyaztec/blockchain';
import { CoreSdk } from '../core_sdk/index.js';
import { DepositHandler } from './deposit_handler.js';
export declare class RegisterController extends DepositHandler {
    readonly userId: GrumpkinAddress;
    readonly alias: string;
    private readonly accountPrivateKey;
    readonly spendingPublicKey: GrumpkinAddress;
    readonly recoveryPublicKey: GrumpkinAddress | undefined;
    readonly deposit: AssetValue;
    readonly fee: AssetValue;
    readonly depositor: EthAddress;
    protected readonly core: CoreSdk;
    private proofOutput?;
    private txIds;
    private requireDeposit;
    constructor(userId: GrumpkinAddress, alias: string, accountPrivateKey: Buffer, spendingPublicKey: GrumpkinAddress, recoveryPublicKey: GrumpkinAddress | undefined, deposit: AssetValue, fee: AssetValue, depositor: EthAddress, core: CoreSdk, blockchain: ClientEthereumBlockchain, provider: EthereumProvider);
    createProof(timeout?: number): Promise<void>;
    exportProofTxs(): import("@polyaztec/barretenberg/rollup_provider").Tx[];
    send(): Promise<TxId>;
    getTxIds(): TxId[];
    awaitSettlement(timeout?: number): Promise<void>;
    private getProofOutputs;
}
//# sourceMappingURL=register_controller.d.ts.map