import { AssetValue } from '@aztec/barretenberg/asset';
import { EthereumProvider } from '@aztec/barretenberg/blockchain';
import { EthAddress } from '@aztec/barretenberg/address';
import { AuxDataConfig, AztecAsset, BridgeDataFieldGetters } from './bridge-data.js';
export declare type BatchSwapStep = {
    poolId: string;
    assetInIndex: number;
    assetOutIndex: number;
    amount: string;
    userData: string;
};
export declare enum SwapType {
    SwapExactIn = 0,
    SwapExactOut = 1
}
export declare type FundManagement = {
    sender: string;
    recipient: string;
    fromInternalBalance: boolean;
    toInternalBalance: boolean;
};
export declare class ElementBridgeData implements BridgeDataFieldGetters {
    private elementBridgeContract;
    private balancerContract;
    private rollupContract;
    private falafelEndpoint;
    scalingFactor: bigint;
    private interactionBlockNumbers;
    private constructor();
    static create(provider: EthereumProvider, elementBridgeAddress: EthAddress, balancerAddress: EthAddress, rollupContractAddress: EthAddress, falafelEndpoint: string): ElementBridgeData;
    private storeEventBlocks;
    private getCurrentBlock;
    private getBlockNumber;
    private findDefiEventForNonce;
    getInteractionPresentValue(interactionNonce: number, inputValue: bigint): Promise<AssetValue[]>;
    getInteractionAPR(interactionNonce: number): Promise<number[]>;
    getAuxData(inputAssetA: AztecAsset, inputAssetB: AztecAsset, outputAssetA: AztecAsset, outputAssetB: AztecAsset): Promise<bigint[]>;
    auxDataConfig: AuxDataConfig[];
    getExpectedOutput(inputAssetA: AztecAsset, inputAssetB: AztecAsset, outputAssetA: AztecAsset, outputAssetB: AztecAsset, auxData: bigint, inputValue: bigint): Promise<bigint[]>;
    getTermAPR(underlying: AztecAsset, auxData: bigint, inputValue: bigint): Promise<number>;
    getExpiration(interactionNonce: number): Promise<bigint>;
    hasFinalised(interactionNonce: number): Promise<boolean>;
}
//# sourceMappingURL=element-bridge-data.d.ts.map