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 interface IHashflowTrackerInterface extends Interface { getFunction(nameOrSignature: "deployHToken" | "getGovernance" | "getHToken" | "getHTokenPool" | "getHTokenToken" | "getHTokenType" | "getPoolAuthorization" | "migrateHToken" | "registerHToken" | "registerPool" | "updateGovernance" | "updatePoolAuthorization" | "validateTxid"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "HTokenMigrated" | "HTokenRegistered" | "UpdateGovernance" | "UpdatePoolAuthorization"): EventFragment; encodeFunctionData(functionFragment: "deployHToken", values: [string, string, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "getGovernance", values?: undefined): string; encodeFunctionData(functionFragment: "getHToken", values: [AddressLike, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "getHTokenPool", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getHTokenToken", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getHTokenType", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPoolAuthorization", values: [AddressLike]): string; encodeFunctionData(functionFragment: "migrateHToken", values: [AddressLike, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "registerHToken", values: [AddressLike, BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "registerPool", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateGovernance", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updatePoolAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "validateTxid", values: [BytesLike]): string; decodeFunctionResult(functionFragment: "deployHToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHTokenPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHTokenToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getHTokenType", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPoolAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "migrateHToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registerHToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registerPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePoolAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateTxid", data: BytesLike): Result; } export declare namespace HTokenMigratedEvent { type InputTuple = [ fromPool: AddressLike, toPool: AddressLike, token: AddressLike, hTokenType: BigNumberish, hToken: AddressLike ]; type OutputTuple = [ fromPool: string, toPool: string, token: string, hTokenType: bigint, hToken: string ]; interface OutputObject { fromPool: string; toPool: string; token: string; hTokenType: bigint; hToken: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace HTokenRegisteredEvent { type InputTuple = [ pool: AddressLike, token: AddressLike, hTokenType: BigNumberish, hToken: AddressLike ]; type OutputTuple = [ pool: string, token: string, hTokenType: bigint, hToken: string ]; interface OutputObject { pool: string; token: string; hTokenType: bigint; hToken: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateGovernanceEvent { type InputTuple = [ governance: AddressLike, prevGovernance: AddressLike ]; type OutputTuple = [governance: string, prevGovernance: string]; interface OutputObject { governance: string; prevGovernance: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdatePoolAuthorizationEvent { type InputTuple = [pool: AddressLike, status: boolean]; type OutputTuple = [pool: string, status: boolean]; interface OutputObject { pool: string; status: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IHashflowTracker extends BaseContract { connect(runner?: ContractRunner | null): IHashflowTracker; waitForDeployment(): Promise; interface: IHashflowTrackerInterface; 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; deployHToken: TypedContractMethod<[ _name: string, _symbol: string, hTokenType: BigNumberish, token: AddressLike ], [ string ], "nonpayable">; getGovernance: TypedContractMethod<[], [string], "view">; getHToken: TypedContractMethod<[ pool: AddressLike, hTokenType: BigNumberish, token: AddressLike ], [ string ], "view">; getHTokenPool: TypedContractMethod<[hToken: AddressLike], [string], "view">; getHTokenToken: TypedContractMethod<[hToken: AddressLike], [string], "view">; getHTokenType: TypedContractMethod<[hToken: AddressLike], [bigint], "view">; getPoolAuthorization: TypedContractMethod<[ pool: AddressLike ], [ boolean ], "view">; migrateHToken: TypedContractMethod<[ fromPool: AddressLike, hTokenType: BigNumberish, token: AddressLike ], [ void ], "nonpayable">; registerHToken: TypedContractMethod<[ token: AddressLike, hTokenType: BigNumberish, hToken: AddressLike ], [ void ], "nonpayable">; registerPool: TypedContractMethod<[pool: AddressLike], [void], "nonpayable">; updateGovernance: TypedContractMethod<[ governance: AddressLike ], [ void ], "nonpayable">; updatePoolAuthorization: TypedContractMethod<[ pool: AddressLike, status: boolean ], [ void ], "nonpayable">; validateTxid: TypedContractMethod<[txid: BytesLike], [void], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "deployHToken"): TypedContractMethod<[ _name: string, _symbol: string, hTokenType: BigNumberish, token: AddressLike ], [ string ], "nonpayable">; getFunction(nameOrSignature: "getGovernance"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getHToken"): TypedContractMethod<[ pool: AddressLike, hTokenType: BigNumberish, token: AddressLike ], [ string ], "view">; getFunction(nameOrSignature: "getHTokenPool"): TypedContractMethod<[hToken: AddressLike], [string], "view">; getFunction(nameOrSignature: "getHTokenToken"): TypedContractMethod<[hToken: AddressLike], [string], "view">; getFunction(nameOrSignature: "getHTokenType"): TypedContractMethod<[hToken: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getPoolAuthorization"): TypedContractMethod<[pool: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "migrateHToken"): TypedContractMethod<[ fromPool: AddressLike, hTokenType: BigNumberish, token: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "registerHToken"): TypedContractMethod<[ token: AddressLike, hTokenType: BigNumberish, hToken: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "registerPool"): TypedContractMethod<[pool: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateGovernance"): TypedContractMethod<[governance: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updatePoolAuthorization"): TypedContractMethod<[ pool: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "validateTxid"): TypedContractMethod<[txid: BytesLike], [void], "nonpayable">; getEvent(key: "HTokenMigrated"): TypedContractEvent; getEvent(key: "HTokenRegistered"): TypedContractEvent; getEvent(key: "UpdateGovernance"): TypedContractEvent; getEvent(key: "UpdatePoolAuthorization"): TypedContractEvent; filters: { "HTokenMigrated(address,address,address,uint8,address)": TypedContractEvent; HTokenMigrated: TypedContractEvent; "HTokenRegistered(address,address,uint8,address)": TypedContractEvent; HTokenRegistered: TypedContractEvent; "UpdateGovernance(address,address)": TypedContractEvent; UpdateGovernance: TypedContractEvent; "UpdatePoolAuthorization(address,bool)": TypedContractEvent; UpdatePoolAuthorization: TypedContractEvent; }; }