import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, PayableOverrides, PopulatedTransaction, Signer, utils } from 'ethers'; import type { FunctionFragment, Result } from '@ethersproject/abi'; import type { Listener, Provider } from '@ethersproject/providers'; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common.js'; export declare namespace IVault { type BatchSwapStepStruct = { poolId: PromiseOrValue; assetInIndex: PromiseOrValue; assetOutIndex: PromiseOrValue; amount: PromiseOrValue; userData: PromiseOrValue; }; type BatchSwapStepStructOutput = [string, BigNumber, BigNumber, BigNumber, string] & { poolId: string; assetInIndex: BigNumber; assetOutIndex: BigNumber; amount: BigNumber; userData: string; }; type FundManagementStruct = { sender: PromiseOrValue; fromInternalBalance: PromiseOrValue; recipient: PromiseOrValue; toInternalBalance: PromiseOrValue; }; type FundManagementStructOutput = [string, boolean, string, boolean] & { sender: string; fromInternalBalance: boolean; recipient: string; toInternalBalance: boolean; }; type SingleSwapStruct = { poolId: PromiseOrValue; kind: PromiseOrValue; assetIn: PromiseOrValue; assetOut: PromiseOrValue; amount: PromiseOrValue; userData: PromiseOrValue; }; type SingleSwapStructOutput = [string, number, string, string, BigNumber, string] & { poolId: string; kind: number; assetIn: string; assetOut: string; amount: BigNumber; userData: string; }; } export interface IVaultInterface extends utils.Interface { functions: { 'getPool(bytes32)': FunctionFragment; 'getPoolTokens(bytes32)': FunctionFragment; 'queryBatchSwap(uint8,(bytes32,uint256,uint256,uint256,bytes)[],address[],(address,bool,address,bool))': FunctionFragment; 'swap((bytes32,uint8,address,address,uint256,bytes),(address,bool,address,bool),uint256,uint256)': FunctionFragment; }; getFunction(nameOrSignatureOrTopic: 'getPool' | 'getPoolTokens' | 'queryBatchSwap' | 'swap'): FunctionFragment; encodeFunctionData(functionFragment: 'getPool', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'getPoolTokens', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'queryBatchSwap', values: [ PromiseOrValue, IVault.BatchSwapStepStruct[], PromiseOrValue[], IVault.FundManagementStruct ]): string; encodeFunctionData(functionFragment: 'swap', values: [ IVault.SingleSwapStruct, IVault.FundManagementStruct, PromiseOrValue, PromiseOrValue ]): string; decodeFunctionResult(functionFragment: 'getPool', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getPoolTokens', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'queryBatchSwap', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'swap', data: BytesLike): Result; events: {}; } export interface IVault extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IVaultInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { getPool(poolId: PromiseOrValue, overrides?: CallOverrides): Promise<[string, number]>; getPoolTokens(poolId: PromiseOrValue, overrides?: CallOverrides): Promise<[ string[], BigNumber[], BigNumber ] & { tokens: string[]; balances: BigNumber[]; lastChangeBlock: BigNumber; }>; queryBatchSwap(kind: PromiseOrValue, swaps: IVault.BatchSwapStepStruct[], assets: PromiseOrValue[], funds: IVault.FundManagementStruct, overrides?: CallOverrides): Promise<[BigNumber[]] & { assetDeltas: BigNumber[]; }>; swap(singleSwap: IVault.SingleSwapStruct, funds: IVault.FundManagementStruct, limit: PromiseOrValue, deadline: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; }; getPool(poolId: PromiseOrValue, overrides?: CallOverrides): Promise<[string, number]>; getPoolTokens(poolId: PromiseOrValue, overrides?: CallOverrides): Promise<[ string[], BigNumber[], BigNumber ] & { tokens: string[]; balances: BigNumber[]; lastChangeBlock: BigNumber; }>; queryBatchSwap(kind: PromiseOrValue, swaps: IVault.BatchSwapStepStruct[], assets: PromiseOrValue[], funds: IVault.FundManagementStruct, overrides?: CallOverrides): Promise; swap(singleSwap: IVault.SingleSwapStruct, funds: IVault.FundManagementStruct, limit: PromiseOrValue, deadline: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; callStatic: { getPool(poolId: PromiseOrValue, overrides?: CallOverrides): Promise<[string, number]>; getPoolTokens(poolId: PromiseOrValue, overrides?: CallOverrides): Promise<[ string[], BigNumber[], BigNumber ] & { tokens: string[]; balances: BigNumber[]; lastChangeBlock: BigNumber; }>; queryBatchSwap(kind: PromiseOrValue, swaps: IVault.BatchSwapStepStruct[], assets: PromiseOrValue[], funds: IVault.FundManagementStruct, overrides?: CallOverrides): Promise; swap(singleSwap: IVault.SingleSwapStruct, funds: IVault.FundManagementStruct, limit: PromiseOrValue, deadline: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { getPool(poolId: PromiseOrValue, overrides?: CallOverrides): Promise; getPoolTokens(poolId: PromiseOrValue, overrides?: CallOverrides): Promise; queryBatchSwap(kind: PromiseOrValue, swaps: IVault.BatchSwapStepStruct[], assets: PromiseOrValue[], funds: IVault.FundManagementStruct, overrides?: CallOverrides): Promise; swap(singleSwap: IVault.SingleSwapStruct, funds: IVault.FundManagementStruct, limit: PromiseOrValue, deadline: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { getPool(poolId: PromiseOrValue, overrides?: CallOverrides): Promise; getPoolTokens(poolId: PromiseOrValue, overrides?: CallOverrides): Promise; queryBatchSwap(kind: PromiseOrValue, swaps: IVault.BatchSwapStepStruct[], assets: PromiseOrValue[], funds: IVault.FundManagementStruct, overrides?: CallOverrides): Promise; swap(singleSwap: IVault.SingleSwapStruct, funds: IVault.FundManagementStruct, limit: PromiseOrValue, deadline: PromiseOrValue, overrides?: PayableOverrides & { from?: PromiseOrValue; }): Promise; }; }