import { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from 'ethers'; import { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from './common'; export declare namespace IMultiswapRouterFacet { type MultiswapCalldataStruct = { amountIn: BigNumberish; minAmountOut: BigNumberish; tokenIn: AddressLike; pairs: BytesLike[]; }; type MultiswapCalldataStructOutput = [ amountIn: bigint, minAmountOut: bigint, tokenIn: string, pairs: string[] ] & { amountIn: bigint; minAmountOut: bigint; tokenIn: string; pairs: string[]; }; type Multiswap2CalldataStruct = { fullAmount: BigNumberish; tokenIn: AddressLike; tokensOut: AddressLike[]; minAmountsOut: BigNumberish[]; amountInPercentages: BigNumberish[]; pairs: BytesLike[][]; }; type Multiswap2CalldataStructOutput = [ fullAmount: bigint, tokenIn: string, tokensOut: string[], minAmountsOut: bigint[], amountInPercentages: bigint[], pairs: string[][] ] & { fullAmount: bigint; tokenIn: string; tokensOut: string[]; minAmountsOut: bigint[]; amountInPercentages: bigint[]; pairs: string[][]; }; } export interface QuoterInterface extends Interface { getFunction(nameOrSignature: "acceptOwnership" | "efficientAmounts" | "getPoolFee" | "getRouter" | "initialize" | "multiswap" | "multiswap2" | "multiswap2Reverse" | "multiswapReverse" | "owner" | "pendingOwner" | "proxiableUUID" | "renounceOwnership" | "setRouter" | "transferOwnership" | "upgradeTo"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Initialized" | "OwnershipTransferStarted" | "OwnershipTransferred" | "Upgraded"): EventFragment; encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "efficientAmounts", values: [BytesLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getPoolFee", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getRouter", values?: undefined): string; encodeFunctionData(functionFragment: "initialize", values: [AddressLike]): string; encodeFunctionData(functionFragment: "multiswap", values: [IMultiswapRouterFacet.MultiswapCalldataStruct]): string; encodeFunctionData(functionFragment: "multiswap2", values: [IMultiswapRouterFacet.Multiswap2CalldataStruct]): string; encodeFunctionData(functionFragment: "multiswap2Reverse", values: [IMultiswapRouterFacet.Multiswap2CalldataStruct]): string; encodeFunctionData(functionFragment: "multiswapReverse", values: [IMultiswapRouterFacet.MultiswapCalldataStruct]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string; encodeFunctionData(functionFragment: "proxiableUUID", values?: undefined): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setRouter", values: [AddressLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "upgradeTo", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "efficientAmounts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPoolFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRouter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multiswap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multiswap2", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multiswap2Reverse", data: BytesLike): Result; decodeFunctionResult(functionFragment: "multiswapReverse", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "proxiableUUID", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setRouter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result; } export declare namespace InitializedEvent { type InputTuple = [version: BigNumberish]; type OutputTuple = [version: bigint]; interface OutputObject { version: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferStartedEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpgradedEvent { type InputTuple = [implementation: AddressLike]; type OutputTuple = [implementation: string]; interface OutputObject { implementation: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface Quoter extends BaseContract { connect(runner?: ContractRunner | null): Quoter; waitForDeployment(): Promise; interface: QuoterInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; acceptOwnership: TypedContractMethod<[], [void], "nonpayable">; efficientAmounts: TypedContractMethod<[ _pool: BytesLike, tokenIn: AddressLike, targetPriceImpact: BigNumberish ], [ [bigint, bigint] & { amountIn: bigint; amountOut: bigint; } ], "view">; getPoolFee: TypedContractMethod<[pair: AddressLike], [bigint], "view">; getRouter: TypedContractMethod<[], [string], "view">; initialize: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; multiswap: TypedContractMethod<[ data: IMultiswapRouterFacet.MultiswapCalldataStruct ], [ bigint ], "view">; multiswap2: TypedContractMethod<[ data: IMultiswapRouterFacet.Multiswap2CalldataStruct ], [ bigint[] ], "view">; multiswap2Reverse: TypedContractMethod<[ data: IMultiswapRouterFacet.Multiswap2CalldataStruct ], [ bigint ], "view">; multiswapReverse: TypedContractMethod<[ data: IMultiswapRouterFacet.MultiswapCalldataStruct ], [ bigint ], "view">; owner: TypedContractMethod<[], [string], "view">; pendingOwner: TypedContractMethod<[], [string], "view">; proxiableUUID: TypedContractMethod<[], [string], "view">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; setRouter: TypedContractMethod<[router: AddressLike], [void], "nonpayable">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; upgradeTo: TypedContractMethod<[ newImplementation: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "efficientAmounts"): TypedContractMethod<[ _pool: BytesLike, tokenIn: AddressLike, targetPriceImpact: BigNumberish ], [ [bigint, bigint] & { amountIn: bigint; amountOut: bigint; } ], "view">; getFunction(nameOrSignature: "getPoolFee"): TypedContractMethod<[pair: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getRouter"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "multiswap"): TypedContractMethod<[ data: IMultiswapRouterFacet.MultiswapCalldataStruct ], [ bigint ], "view">; getFunction(nameOrSignature: "multiswap2"): TypedContractMethod<[ data: IMultiswapRouterFacet.Multiswap2CalldataStruct ], [ bigint[] ], "view">; getFunction(nameOrSignature: "multiswap2Reverse"): TypedContractMethod<[ data: IMultiswapRouterFacet.Multiswap2CalldataStruct ], [ bigint ], "view">; getFunction(nameOrSignature: "multiswapReverse"): TypedContractMethod<[ data: IMultiswapRouterFacet.MultiswapCalldataStruct ], [ bigint ], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "pendingOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "proxiableUUID"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "setRouter"): TypedContractMethod<[router: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "upgradeTo"): TypedContractMethod<[ newImplementation: AddressLike ], [ void ], "nonpayable">; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "OwnershipTransferStarted"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; getEvent(key: "Upgraded"): TypedContractEvent; filters: { "Initialized(uint8)": TypedContractEvent; Initialized: TypedContractEvent; "OwnershipTransferStarted(address,address)": TypedContractEvent; OwnershipTransferStarted: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; "Upgraded(address)": TypedContractEvent; Upgraded: TypedContractEvent; }; }