import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IRenovaQuest { type TokenDepositStruct = { token: AddressLike; amount: BigNumberish; }; type TokenDepositStructOutput = [token: string, amount: bigint] & { token: string; amount: bigint; }; } export declare namespace IHashflowRouter { type RFQTQuoteStruct = { pool: AddressLike; externalAccount: AddressLike; trader: AddressLike; effectiveTrader: AddressLike; baseToken: AddressLike; quoteToken: AddressLike; effectiveBaseTokenAmount: BigNumberish; maxBaseTokenAmount: BigNumberish; maxQuoteTokenAmount: BigNumberish; quoteExpiry: BigNumberish; nonce: BigNumberish; txid: BytesLike; signature: BytesLike; }; type RFQTQuoteStructOutput = [ pool: string, externalAccount: string, trader: string, effectiveTrader: string, baseToken: string, quoteToken: string, effectiveBaseTokenAmount: bigint, maxBaseTokenAmount: bigint, maxQuoteTokenAmount: bigint, quoteExpiry: bigint, nonce: bigint, txid: string, signature: string ] & { pool: string; externalAccount: string; trader: string; effectiveTrader: string; baseToken: string; quoteToken: string; effectiveBaseTokenAmount: bigint; maxBaseTokenAmount: bigint; maxQuoteTokenAmount: bigint; quoteExpiry: bigint; nonce: bigint; txid: string; signature: string; }; } export interface IRenovaQuestInterface extends Interface { getFunction(nameOrSignature: "allowedTokens" | "depositTokens" | "endTime" | "enter" | "enterLoadDeposit" | "loadItems" | "loadedItems" | "numLoadedItems" | "numRegisteredPlayers" | "numRegisteredPlayersPerFaction" | "portfolioTokenBalances" | "questOwner" | "registered" | "startTime" | "trade" | "unloadAllItems" | "unloadItem" | "updateTokenAuthorization" | "withdrawTokens"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "DepositToken" | "LoadItem" | "RegisterPlayer" | "Trade" | "UnloadItem" | "UpdateTokenAuthorizationStatus" | "WithdrawToken"): EventFragment; encodeFunctionData(functionFragment: "allowedTokens", values: [AddressLike]): string; encodeFunctionData(functionFragment: "depositTokens", values: [IRenovaQuest.TokenDepositStruct[]]): string; encodeFunctionData(functionFragment: "endTime", values?: undefined): string; encodeFunctionData(functionFragment: "enter", values?: undefined): string; encodeFunctionData(functionFragment: "enterLoadDeposit", values: [BigNumberish[], IRenovaQuest.TokenDepositStruct[]]): string; encodeFunctionData(functionFragment: "loadItems", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "loadedItems", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "numLoadedItems", values: [AddressLike]): string; encodeFunctionData(functionFragment: "numRegisteredPlayers", values?: undefined): string; encodeFunctionData(functionFragment: "numRegisteredPlayersPerFaction", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "portfolioTokenBalances", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "questOwner", values?: undefined): string; encodeFunctionData(functionFragment: "registered", values: [AddressLike]): string; encodeFunctionData(functionFragment: "startTime", values?: undefined): string; encodeFunctionData(functionFragment: "trade", values: [IHashflowRouter.RFQTQuoteStruct]): string; encodeFunctionData(functionFragment: "unloadAllItems", values?: undefined): string; encodeFunctionData(functionFragment: "unloadItem", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateTokenAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "withdrawTokens", values: [AddressLike[]]): string; decodeFunctionResult(functionFragment: "allowedTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "endTime", data: BytesLike): Result; decodeFunctionResult(functionFragment: "enter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "enterLoadDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "loadItems", data: BytesLike): Result; decodeFunctionResult(functionFragment: "loadedItems", data: BytesLike): Result; decodeFunctionResult(functionFragment: "numLoadedItems", data: BytesLike): Result; decodeFunctionResult(functionFragment: "numRegisteredPlayers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "numRegisteredPlayersPerFaction", data: BytesLike): Result; decodeFunctionResult(functionFragment: "portfolioTokenBalances", data: BytesLike): Result; decodeFunctionResult(functionFragment: "questOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registered", data: BytesLike): Result; decodeFunctionResult(functionFragment: "startTime", data: BytesLike): Result; decodeFunctionResult(functionFragment: "trade", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unloadAllItems", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unloadItem", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateTokenAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawTokens", data: BytesLike): Result; } export declare namespace DepositTokenEvent { type InputTuple = [ player: AddressLike, token: AddressLike, amount: BigNumberish ]; type OutputTuple = [player: string, token: string, amount: bigint]; interface OutputObject { player: string; token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LoadItemEvent { type InputTuple = [player: AddressLike, tokenId: BigNumberish]; type OutputTuple = [player: string, tokenId: bigint]; interface OutputObject { player: string; tokenId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RegisterPlayerEvent { type InputTuple = [player: AddressLike]; type OutputTuple = [player: string]; interface OutputObject { player: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TradeEvent { type InputTuple = [ player: AddressLike, baseToken: AddressLike, quoteToken: AddressLike, baseTokenAmount: BigNumberish, quoteTokenAmount: BigNumberish ]; type OutputTuple = [ player: string, baseToken: string, quoteToken: string, baseTokenAmount: bigint, quoteTokenAmount: bigint ]; interface OutputObject { player: string; baseToken: string; quoteToken: string; baseTokenAmount: bigint; quoteTokenAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnloadItemEvent { type InputTuple = [player: AddressLike, tokenId: BigNumberish]; type OutputTuple = [player: string, tokenId: bigint]; interface OutputObject { player: string; tokenId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateTokenAuthorizationStatusEvent { type InputTuple = [token: AddressLike, status: boolean]; type OutputTuple = [token: string, status: boolean]; interface OutputObject { token: string; status: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace WithdrawTokenEvent { type InputTuple = [ player: AddressLike, token: AddressLike, amount: BigNumberish ]; type OutputTuple = [player: string, token: string, amount: bigint]; interface OutputObject { player: string; token: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IRenovaQuest extends BaseContract { connect(runner?: ContractRunner | null): IRenovaQuest; waitForDeployment(): Promise; interface: IRenovaQuestInterface; 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; allowedTokens: TypedContractMethod<[token: AddressLike], [boolean], "view">; depositTokens: TypedContractMethod<[ tokenDeposits: IRenovaQuest.TokenDepositStruct[] ], [ void ], "payable">; endTime: TypedContractMethod<[], [bigint], "view">; enter: TypedContractMethod<[], [void], "nonpayable">; enterLoadDeposit: TypedContractMethod<[ tokenIds: BigNumberish[], tokenDeposits: IRenovaQuest.TokenDepositStruct[] ], [ void ], "payable">; loadItems: TypedContractMethod<[ tokenIds: BigNumberish[] ], [ void ], "nonpayable">; loadedItems: TypedContractMethod<[ player: AddressLike, idx: BigNumberish ], [ bigint ], "view">; numLoadedItems: TypedContractMethod<[player: AddressLike], [bigint], "view">; numRegisteredPlayers: TypedContractMethod<[], [bigint], "view">; numRegisteredPlayersPerFaction: TypedContractMethod<[ faction: BigNumberish ], [ bigint ], "view">; portfolioTokenBalances: TypedContractMethod<[ player: AddressLike, token: AddressLike ], [ bigint ], "view">; questOwner: TypedContractMethod<[], [string], "view">; registered: TypedContractMethod<[player: AddressLike], [boolean], "view">; startTime: TypedContractMethod<[], [bigint], "view">; trade: TypedContractMethod<[ quote: IHashflowRouter.RFQTQuoteStruct ], [ void ], "payable">; unloadAllItems: TypedContractMethod<[], [void], "nonpayable">; unloadItem: TypedContractMethod<[ tokenId: BigNumberish ], [ void ], "nonpayable">; updateTokenAuthorization: TypedContractMethod<[ token: AddressLike, status: boolean ], [ void ], "nonpayable">; withdrawTokens: TypedContractMethod<[ tokens: AddressLike[] ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "allowedTokens"): TypedContractMethod<[token: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "depositTokens"): TypedContractMethod<[ tokenDeposits: IRenovaQuest.TokenDepositStruct[] ], [ void ], "payable">; getFunction(nameOrSignature: "endTime"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "enter"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "enterLoadDeposit"): TypedContractMethod<[ tokenIds: BigNumberish[], tokenDeposits: IRenovaQuest.TokenDepositStruct[] ], [ void ], "payable">; getFunction(nameOrSignature: "loadItems"): TypedContractMethod<[tokenIds: BigNumberish[]], [void], "nonpayable">; getFunction(nameOrSignature: "loadedItems"): TypedContractMethod<[ player: AddressLike, idx: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "numLoadedItems"): TypedContractMethod<[player: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "numRegisteredPlayers"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "numRegisteredPlayersPerFaction"): TypedContractMethod<[faction: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "portfolioTokenBalances"): TypedContractMethod<[ player: AddressLike, token: AddressLike ], [ bigint ], "view">; getFunction(nameOrSignature: "questOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "registered"): TypedContractMethod<[player: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "startTime"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "trade"): TypedContractMethod<[ quote: IHashflowRouter.RFQTQuoteStruct ], [ void ], "payable">; getFunction(nameOrSignature: "unloadAllItems"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "unloadItem"): TypedContractMethod<[tokenId: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "updateTokenAuthorization"): TypedContractMethod<[ token: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "withdrawTokens"): TypedContractMethod<[tokens: AddressLike[]], [void], "nonpayable">; getEvent(key: "DepositToken"): TypedContractEvent; getEvent(key: "LoadItem"): TypedContractEvent; getEvent(key: "RegisterPlayer"): TypedContractEvent; getEvent(key: "Trade"): TypedContractEvent; getEvent(key: "UnloadItem"): TypedContractEvent; getEvent(key: "UpdateTokenAuthorizationStatus"): TypedContractEvent; getEvent(key: "WithdrawToken"): TypedContractEvent; filters: { "DepositToken(address,address,uint256)": TypedContractEvent; DepositToken: TypedContractEvent; "LoadItem(address,uint256)": TypedContractEvent; LoadItem: TypedContractEvent; "RegisterPlayer(address)": TypedContractEvent; RegisterPlayer: TypedContractEvent; "Trade(address,address,address,uint256,uint256)": TypedContractEvent; Trade: TypedContractEvent; "UnloadItem(address,uint256)": TypedContractEvent; UnloadItem: TypedContractEvent; "UpdateTokenAuthorizationStatus(address,bool)": TypedContractEvent; UpdateTokenAuthorizationStatus: TypedContractEvent; "WithdrawToken(address,address,uint256)": TypedContractEvent; WithdrawToken: TypedContractEvent; }; }