/// <reference types="node" resolution-mode="require"/>
import { EthAddress } from '@aztec/barretenberg/address';
import { Asset, EthereumProvider, FeeData, PriceFeed, SendTxOptions, TxHash, TypedData } from '@aztec/barretenberg/blockchain';
import { BridgeDataProvider } from './bridge_data_provider/bridge_data_provider.js';
import { GasPriceFeed } from './price_feed/index.js';
import { RollupProcessor } from './rollup_processor/index.js';
/**
 * Facade around all Aztec smart contract classes.
 * Provides a factory function `fromAddresses` to simplify construction of all contract classes.
 * Exposes a more holistic interface to clients, than having to deal with individual contract classes.
 */
export declare class Contracts {
    private readonly rollupProcessor;
    private assets;
    private readonly gasPriceFeed;
    private readonly priceFeeds;
    private readonly bridgeDataProvider;
    private readonly ethereumProvider;
    private readonly confirmations;
    private readonly provider;
    private readonly ethereumRpc;
    constructor(rollupProcessor: RollupProcessor, assets: Asset[], gasPriceFeed: GasPriceFeed, priceFeeds: PriceFeed[], bridgeDataProvider: BridgeDataProvider, ethereumProvider: EthereumProvider, confirmations: number);
    static fromAddresses(rollupContractAddress: EthAddress, permitHelperContractAddress: EthAddress, priceFeedContractAddresses: EthAddress[], bridgeDataProviderAddress: EthAddress, ethereumProvider: EthereumProvider, confirmations: number): Promise<Contracts>;
    getProvider(): EthereumProvider;
    updateAssets(): Promise<void>;
    getPerRollupState(): Promise<{
        defiInteractionHashes: Buffer[];
    }>;
    getPerBlockState(): Promise<{
        escapeOpen: boolean;
        numEscapeBlocksRemaining: number;
        allowThirdPartyContracts: any;
    }>;
    updatePerEthBlockState(): Promise<void>;
    getRollupBalance(assetId: number): Promise<bigint>;
    getRollupContractAddress(): EthAddress;
    getBridgeDataProviderAddress(): EthAddress;
    getPermitHelperContractAddress(): EthAddress;
    getVerifierContractAddress(): Promise<EthAddress>;
    createRollupTxs(dataBuf: Buffer, signatures: Buffer[], offchainTxData: Buffer[], txCallDataLimit: number): Promise<import("@aztec/barretenberg/blockchain").RollupTxs>;
    sendTx(data: Buffer, options?: SendTxOptions): Promise<TxHash>;
    estimateGas(data: Buffer): Promise<number>;
    getRollupBlocksFrom(rollupId: number, minConfirmations?: number): Promise<import("@aztec/barretenberg/block_source").Block[]>;
    getRollupBlock(rollupId: number): Promise<import("@aztec/barretenberg/block_source").Block | undefined>;
    getUserPendingDeposit(assetId: number, account: EthAddress): Promise<bigint>;
    getTransactionByHash(txHash: TxHash): Promise<any>;
    getTransactionReceipt(txHash: TxHash): Promise<import("@ethersproject/abstract-provider").TransactionReceipt>;
    getChainId(): Promise<number>;
    getBlockNumber(): Promise<number>;
    signPersonalMessage(message: Buffer, address: EthAddress): Promise<Buffer>;
    signMessage(message: Buffer, address: EthAddress): Promise<Buffer>;
    signTypedData(data: TypedData, address: EthAddress): Promise<{
        v: Buffer;
        r: Buffer;
        s: Buffer;
    }>;
    getAsset(assetId: number): Asset;
    getAssetPrice(assetId: number): Promise<bigint>;
    getPriceFeed(assetId: number): PriceFeed;
    getGasPriceFeed(): GasPriceFeed;
    getUserProofApprovalStatus(address: EthAddress, txId: Buffer): Promise<boolean>;
    isContract(address: EthAddress): Promise<boolean>;
    isEmpty(address: EthAddress): Promise<boolean>;
    getFeeData(): Promise<FeeData>;
    getAssets(): import("@aztec/barretenberg/blockchain").BlockchainAsset[];
    getSupportedBridges(): Promise<any[]>;
    getRevertError(txHash: TxHash): Promise<import("@aztec/barretenberg/blockchain").RevertError | undefined>;
    getBridgeSubsidy(bridgeCallData: bigint): Promise<import("@aztec/barretenberg/blockchain").BridgeSubsidy>;
    getBridgeData(bridgeAddressId: number): Promise<import("@aztec/barretenberg/blockchain").BridgeData>;
}
//# sourceMappingURL=contracts.d.ts.map