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 IQuote { type RFQTQuoteStruct = { pool: AddressLike; externalAccount: AddressLike; trader: AddressLike; effectiveTrader: AddressLike; baseToken: AddressLike; quoteToken: AddressLike; effectiveBaseTokenAmount: BigNumberish; baseTokenAmount: BigNumberish; quoteTokenAmount: 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, baseTokenAmount: bigint, quoteTokenAmount: bigint, quoteExpiry: bigint, nonce: bigint, txid: string, signature: string ] & { pool: string; externalAccount: string; trader: string; effectiveTrader: string; baseToken: string; quoteToken: string; effectiveBaseTokenAmount: bigint; baseTokenAmount: bigint; quoteTokenAmount: bigint; quoteExpiry: bigint; nonce: bigint; txid: string; signature: string; }; } export interface IRenovaQuestInterface extends Interface { getFunction(nameOrSignature: "allowedTokens" | "depositAndEnter" | "depositToken" | "endTime" | "minDepositAmount" | "numRegisteredPlayers" | "portfolioTokenBalances" | "questOwner" | "registered" | "startTime" | "trade" | "updateTokenAuthorization" | "withdrawTokens"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "DepositToken" | "RegisterPlayer" | "Trade" | "UpdateTokenAuthorizationStatus" | "WithdrawToken"): EventFragment; encodeFunctionData(functionFragment: "allowedTokens", values: [AddressLike]): string; encodeFunctionData(functionFragment: "depositAndEnter", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "depositToken", values?: undefined): string; encodeFunctionData(functionFragment: "endTime", values?: undefined): string; encodeFunctionData(functionFragment: "minDepositAmount", values?: undefined): string; encodeFunctionData(functionFragment: "numRegisteredPlayers", values?: undefined): 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: [IQuote.RFQTQuoteStruct]): string; encodeFunctionData(functionFragment: "updateTokenAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "withdrawTokens", values: [AddressLike[]]): string; decodeFunctionResult(functionFragment: "allowedTokens", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositAndEnter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "endTime", data: BytesLike): Result; decodeFunctionResult(functionFragment: "minDepositAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "numRegisteredPlayers", 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: "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 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 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">; depositAndEnter: TypedContractMethod<[ depositAmount: BigNumberish ], [ void ], "payable">; depositToken: TypedContractMethod<[], [string], "view">; endTime: TypedContractMethod<[], [bigint], "view">; minDepositAmount: TypedContractMethod<[], [bigint], "view">; numRegisteredPlayers: TypedContractMethod<[], [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: IQuote.RFQTQuoteStruct ], [ 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: "depositAndEnter"): TypedContractMethod<[depositAmount: BigNumberish], [void], "payable">; getFunction(nameOrSignature: "depositToken"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "endTime"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "minDepositAmount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "numRegisteredPlayers"): TypedContractMethod<[], [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: IQuote.RFQTQuoteStruct], [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: "RegisterPlayer"): TypedContractEvent; getEvent(key: "Trade"): TypedContractEvent; getEvent(key: "UpdateTokenAuthorizationStatus"): TypedContractEvent; getEvent(key: "WithdrawToken"): TypedContractEvent; filters: { "DepositToken(address,address,uint256)": TypedContractEvent; DepositToken: TypedContractEvent; "RegisterPlayer(address)": TypedContractEvent; RegisterPlayer: TypedContractEvent; "Trade(address,address,address,uint256,uint256)": TypedContractEvent; Trade: TypedContractEvent; "UpdateTokenAuthorizationStatus(address,bool)": TypedContractEvent; UpdateTokenAuthorizationStatus: TypedContractEvent; "WithdrawToken(address,address,uint256)": TypedContractEvent; WithdrawToken: TypedContractEvent; }; }