import type { BaseContract, 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: "getGovernance" | "getPoolAuthorization" | "registerPool" | "updateGovernance" | "updatePoolAuthorization"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "UpdateGovernance" | "UpdatePoolAuthorization"): EventFragment; encodeFunctionData(functionFragment: "getGovernance", values?: undefined): string; encodeFunctionData(functionFragment: "getPoolAuthorization", values: [AddressLike]): string; encodeFunctionData(functionFragment: "registerPool", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateGovernance", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updatePoolAuthorization", values: [AddressLike, boolean]): string; decodeFunctionResult(functionFragment: "getGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPoolAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registerPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePoolAuthorization", data: BytesLike): Result; } 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; getGovernance: TypedContractMethod<[], [string], "view">; getPoolAuthorization: TypedContractMethod<[ pool: AddressLike ], [ boolean ], "view">; registerPool: TypedContractMethod<[pool: AddressLike], [void], "nonpayable">; updateGovernance: TypedContractMethod<[ governance: AddressLike ], [ void ], "nonpayable">; updatePoolAuthorization: TypedContractMethod<[ pool: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "getGovernance"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getPoolAuthorization"): TypedContractMethod<[pool: AddressLike], [boolean], "view">; 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">; getEvent(key: "UpdateGovernance"): TypedContractEvent; getEvent(key: "UpdatePoolAuthorization"): TypedContractEvent; filters: { "UpdateGovernance(address,address)": TypedContractEvent; UpdateGovernance: TypedContractEvent; "UpdatePoolAuthorization(address,bool)": TypedContractEvent; UpdatePoolAuthorization: TypedContractEvent; }; }