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 IHashflowGovernance { type NativeTokenDetailsStruct = { name: string; symbol: string; decimals: BigNumberish; }; type NativeTokenDetailsStructOutput = [ name: string, symbol: string, decimals: bigint ] & { name: string; symbol: string; decimals: bigint; }; } export interface IHashflowGovernanceInterface extends Interface { getFunction(nameOrSignature: "authorizedRouter" | "factory" | "getNativeTokenDetails" | "percentWithdrawLimit" | "router" | "updateFactory" | "updatePercentWithdrawLimit" | "updateRouter" | "updateRouterAuthStatus" | "updateWithdrawPeriod" | "updateXChainUa" | "withdrawPeriod" | "xChainUa"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "UpdateFactory" | "UpdatePercentWithdrawLimit" | "UpdateRouter" | "UpdateRouterAuthStatus" | "UpdateWithdrawPeriod" | "UpdateXChainUA"): EventFragment; encodeFunctionData(functionFragment: "authorizedRouter", values: [AddressLike]): string; encodeFunctionData(functionFragment: "factory", values?: undefined): string; encodeFunctionData(functionFragment: "getNativeTokenDetails", values?: undefined): string; encodeFunctionData(functionFragment: "percentWithdrawLimit", values?: undefined): string; encodeFunctionData(functionFragment: "router", values?: undefined): string; encodeFunctionData(functionFragment: "updateFactory", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updatePercentWithdrawLimit", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateRouter", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateRouterAuthStatus", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updateWithdrawPeriod", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "updateXChainUa", values: [AddressLike]): string; encodeFunctionData(functionFragment: "withdrawPeriod", values?: undefined): string; encodeFunctionData(functionFragment: "xChainUa", values?: undefined): string; decodeFunctionResult(functionFragment: "authorizedRouter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "factory", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getNativeTokenDetails", data: BytesLike): Result; decodeFunctionResult(functionFragment: "percentWithdrawLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "router", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateFactory", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePercentWithdrawLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateRouter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateRouterAuthStatus", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateWithdrawPeriod", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateXChainUa", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawPeriod", data: BytesLike): Result; decodeFunctionResult(functionFragment: "xChainUa", data: BytesLike): Result; } export declare namespace UpdateFactoryEvent { type InputTuple = [factory: AddressLike, prevFactory: AddressLike]; type OutputTuple = [factory: string, prevFactory: string]; interface OutputObject { factory: string; prevFactory: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdatePercentWithdrawLimitEvent { type InputTuple = [limit: BigNumberish]; type OutputTuple = [limit: bigint]; interface OutputObject { limit: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateRouterEvent { type InputTuple = [router: AddressLike, prevRouter: AddressLike]; type OutputTuple = [router: string, prevRouter: string]; interface OutputObject { router: string; prevRouter: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateRouterAuthStatusEvent { type InputTuple = [router: AddressLike, authorization: boolean]; type OutputTuple = [router: string, authorization: boolean]; interface OutputObject { router: string; authorization: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateWithdrawPeriodEvent { type InputTuple = [period: BigNumberish]; type OutputTuple = [period: bigint]; interface OutputObject { period: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdateXChainUAEvent { type InputTuple = [xChainUa: AddressLike, prevXChainUa: AddressLike]; type OutputTuple = [xChainUa: string, prevXChainUa: string]; interface OutputObject { xChainUa: string; prevXChainUa: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IHashflowGovernance extends BaseContract { connect(runner?: ContractRunner | null): IHashflowGovernance; waitForDeployment(): Promise; interface: IHashflowGovernanceInterface; 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; authorizedRouter: TypedContractMethod<[ router: AddressLike ], [ boolean ], "view">; factory: TypedContractMethod<[], [string], "view">; getNativeTokenDetails: TypedContractMethod<[ ], [ IHashflowGovernance.NativeTokenDetailsStructOutput ], "view">; percentWithdrawLimit: TypedContractMethod<[], [bigint], "view">; router: TypedContractMethod<[], [string], "view">; updateFactory: TypedContractMethod<[ factory: AddressLike ], [ void ], "nonpayable">; updatePercentWithdrawLimit: TypedContractMethod<[ percentWithdrawLimit: BigNumberish ], [ void ], "nonpayable">; updateRouter: TypedContractMethod<[ router: AddressLike ], [ void ], "nonpayable">; updateRouterAuthStatus: TypedContractMethod<[ router: AddressLike, authorization: boolean ], [ void ], "nonpayable">; updateWithdrawPeriod: TypedContractMethod<[ withdrawPeriod: BigNumberish ], [ void ], "nonpayable">; updateXChainUa: TypedContractMethod<[ xChainUa: AddressLike ], [ void ], "nonpayable">; withdrawPeriod: TypedContractMethod<[], [bigint], "view">; xChainUa: TypedContractMethod<[], [string], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "authorizedRouter"): TypedContractMethod<[router: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "factory"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getNativeTokenDetails"): TypedContractMethod<[ ], [ IHashflowGovernance.NativeTokenDetailsStructOutput ], "view">; getFunction(nameOrSignature: "percentWithdrawLimit"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "router"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "updateFactory"): TypedContractMethod<[factory: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updatePercentWithdrawLimit"): TypedContractMethod<[ percentWithdrawLimit: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateRouter"): TypedContractMethod<[router: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateRouterAuthStatus"): TypedContractMethod<[ router: AddressLike, authorization: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateWithdrawPeriod"): TypedContractMethod<[withdrawPeriod: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "updateXChainUa"): TypedContractMethod<[xChainUa: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "withdrawPeriod"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "xChainUa"): TypedContractMethod<[], [string], "view">; getEvent(key: "UpdateFactory"): TypedContractEvent; getEvent(key: "UpdatePercentWithdrawLimit"): TypedContractEvent; getEvent(key: "UpdateRouter"): TypedContractEvent; getEvent(key: "UpdateRouterAuthStatus"): TypedContractEvent; getEvent(key: "UpdateWithdrawPeriod"): TypedContractEvent; getEvent(key: "UpdateXChainUA"): TypedContractEvent; filters: { "UpdateFactory(address,address)": TypedContractEvent; UpdateFactory: TypedContractEvent; "UpdatePercentWithdrawLimit(uint256)": TypedContractEvent; UpdatePercentWithdrawLimit: TypedContractEvent; "UpdateRouter(address,address)": TypedContractEvent; UpdateRouter: TypedContractEvent; "UpdateRouterAuthStatus(address,bool)": TypedContractEvent; UpdateRouterAuthStatus: TypedContractEvent; "UpdateWithdrawPeriod(uint256)": TypedContractEvent; UpdateWithdrawPeriod: TypedContractEvent; "UpdateXChainUA(address,address)": TypedContractEvent; UpdateXChainUA: TypedContractEvent; }; }