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 IHashflowFactoryInterface extends Interface { getFunction(nameOrSignature: "createPool" | "updateGovernance" | "updateHTokenImpl" | "updatePrivatePoolImpl" | "updatePublicPoolImpl"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "CreatePool" | "UpdateGovernance" | "UpdateHTokenImplementation" | "UpdatePrivatePoolImplementation" | "UpdatePublicPoolImplementation"): EventFragment; encodeFunctionData(functionFragment: "createPool", values: [string, string, AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updateGovernance", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateHTokenImpl", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updatePrivatePoolImpl", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updatePublicPoolImpl", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateGovernance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateHTokenImpl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePrivatePoolImpl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePublicPoolImpl", data: BytesLike): Result; } export declare namespace CreatePoolEvent { type InputTuple = [ pool: AddressLike, operations: AddressLike, privatePool: boolean ]; type OutputTuple = [ pool: string, operations: string, privatePool: boolean ]; interface OutputObject { pool: string; operations: string; privatePool: boolean; } 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 UpdateHTokenImplementationEvent { type InputTuple = [ hTokenImpl: AddressLike, prevHTokenImpl: AddressLike ]; type OutputTuple = [hTokenImpl: string, prevHTokenImpl: string]; interface OutputObject { hTokenImpl: string; prevHTokenImpl: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdatePrivatePoolImplementationEvent { type InputTuple = [ privatePoolImpl: AddressLike, prevPrivatePoolImpl: AddressLike ]; type OutputTuple = [ privatePoolImpl: string, prevPrivatePoolImpl: string ]; interface OutputObject { privatePoolImpl: string; prevPrivatePoolImpl: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdatePublicPoolImplementationEvent { type InputTuple = [ publicPoolImpl: AddressLike, prevPublicPoolImpl: AddressLike ]; type OutputTuple = [ publicPoolImpl: string, prevPublicPoolImpl: string ]; interface OutputObject { publicPoolImpl: string; prevPublicPoolImpl: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IHashflowFactory extends BaseContract { connect(runner?: ContractRunner | null): IHashflowFactory; waitForDeployment(): Promise; interface: IHashflowFactoryInterface; 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; createPool: TypedContractMethod<[ name: string, symbol: string, signer: AddressLike, isPrivate: boolean ], [ void ], "nonpayable">; updateGovernance: TypedContractMethod<[ governance: AddressLike ], [ void ], "nonpayable">; updateHTokenImpl: TypedContractMethod<[ hTokenImpl: AddressLike ], [ void ], "nonpayable">; updatePrivatePoolImpl: TypedContractMethod<[ privatePoolImpl: AddressLike ], [ void ], "nonpayable">; updatePublicPoolImpl: TypedContractMethod<[ publicPoolImpl: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "createPool"): TypedContractMethod<[ name: string, symbol: string, signer: AddressLike, isPrivate: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateGovernance"): TypedContractMethod<[governance: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updateHTokenImpl"): TypedContractMethod<[hTokenImpl: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updatePrivatePoolImpl"): TypedContractMethod<[privatePoolImpl: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "updatePublicPoolImpl"): TypedContractMethod<[publicPoolImpl: AddressLike], [void], "nonpayable">; getEvent(key: "CreatePool"): TypedContractEvent; getEvent(key: "UpdateGovernance"): TypedContractEvent; getEvent(key: "UpdateHTokenImplementation"): TypedContractEvent; getEvent(key: "UpdatePrivatePoolImplementation"): TypedContractEvent; getEvent(key: "UpdatePublicPoolImplementation"): TypedContractEvent; filters: { "CreatePool(address,address,bool)": TypedContractEvent; CreatePool: TypedContractEvent; "UpdateGovernance(address,address)": TypedContractEvent; UpdateGovernance: TypedContractEvent; "UpdateHTokenImplementation(address,address)": TypedContractEvent; UpdateHTokenImplementation: TypedContractEvent; "UpdatePrivatePoolImplementation(address,address)": TypedContractEvent; UpdatePrivatePoolImplementation: TypedContractEvent; "UpdatePublicPoolImplementation(address,address)": TypedContractEvent; UpdatePublicPoolImplementation: TypedContractEvent; }; }