import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export declare type SwapRequestStruct = { kind: BigNumberish; tokenIn: string; tokenOut: string; amount: BigNumberish; poolId: BytesLike; lastChangeBlock: BigNumberish; from: string; to: string; userData: BytesLike; }; export declare type SwapRequestStructOutput = [ number, string, string, BigNumber, string, BigNumber, string, string, string ] & { kind: number; tokenIn: string; tokenOut: string; amount: BigNumber; poolId: string; lastChangeBlock: BigNumber; from: string; to: string; userData: string; }; export interface IGeneralPoolInterface extends utils.Interface { functions: { "onExitPool(bytes32,address,address,uint256[],uint256,uint256,bytes)": FunctionFragment; "onJoinPool(bytes32,address,address,uint256[],uint256,uint256,bytes)": FunctionFragment; "onSwap((uint8,address,address,uint256,bytes32,uint256,address,address,bytes),uint256[],uint256,uint256)": FunctionFragment; }; encodeFunctionData(functionFragment: "onExitPool", values: [ BytesLike, string, string, BigNumberish[], BigNumberish, BigNumberish, BytesLike ]): string; encodeFunctionData(functionFragment: "onJoinPool", values: [ BytesLike, string, string, BigNumberish[], BigNumberish, BigNumberish, BytesLike ]): string; encodeFunctionData(functionFragment: "onSwap", values: [SwapRequestStruct, BigNumberish[], BigNumberish, BigNumberish]): string; decodeFunctionResult(functionFragment: "onExitPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "onJoinPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "onSwap", data: BytesLike): Result; events: {}; } export interface IGeneralPool extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IGeneralPoolInterface; 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: { onExitPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onJoinPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onSwap(swapRequest: SwapRequestStruct, balances: BigNumberish[], indexIn: BigNumberish, indexOut: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; onExitPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onJoinPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onSwap(swapRequest: SwapRequestStruct, balances: BigNumberish[], indexIn: BigNumberish, indexOut: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; callStatic: { onExitPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: CallOverrides): Promise<[ BigNumber[], BigNumber[] ] & { amountsOut: BigNumber[]; dueProtocolFeeAmounts: BigNumber[]; }>; onJoinPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: CallOverrides): Promise<[ BigNumber[], BigNumber[] ] & { amountsIn: BigNumber[]; dueProtocolFeeAmounts: BigNumber[]; }>; onSwap(swapRequest: SwapRequestStruct, balances: BigNumberish[], indexIn: BigNumberish, indexOut: BigNumberish, overrides?: CallOverrides): Promise; }; filters: {}; estimateGas: { onExitPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onJoinPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onSwap(swapRequest: SwapRequestStruct, balances: BigNumberish[], indexIn: BigNumberish, indexOut: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; populateTransaction: { onExitPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onJoinPool(poolId: BytesLike, sender: string, recipient: string, balances: BigNumberish[], lastChangeBlock: BigNumberish, protocolSwapFeePercentage: BigNumberish, userData: BytesLike, overrides?: Overrides & { from?: string | Promise; }): Promise; onSwap(swapRequest: SwapRequestStruct, balances: BigNumberish[], indexIn: BigNumberish, indexOut: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; }; }