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: "allowedPoolCreators" | "createPool" | "initialize" | "router" | "updatePoolCreatorAuthorization" | "updatePoolImpl"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "CreatePool" | "UpdatePoolCreatorAuthorization" | "UpdatePoolImplementation"): EventFragment; encodeFunctionData(functionFragment: "allowedPoolCreators", values: [AddressLike]): string; encodeFunctionData(functionFragment: "createPool", values: [string, AddressLike]): string; encodeFunctionData(functionFragment: "initialize", values: [AddressLike]): string; encodeFunctionData(functionFragment: "router", values?: undefined): string; encodeFunctionData(functionFragment: "updatePoolCreatorAuthorization", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "updatePoolImpl", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "allowedPoolCreators", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "router", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePoolCreatorAuthorization", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updatePoolImpl", data: BytesLike): Result; } export declare namespace CreatePoolEvent { type InputTuple = [pool: AddressLike, operations: AddressLike]; type OutputTuple = [pool: string, operations: string]; interface OutputObject { pool: string; operations: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdatePoolCreatorAuthorizationEvent { type InputTuple = [ poolCreator: AddressLike, authorizationStatus: boolean ]; type OutputTuple = [poolCreator: string, authorizationStatus: boolean]; interface OutputObject { poolCreator: string; authorizationStatus: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UpdatePoolImplementationEvent { type InputTuple = [poolImpl: AddressLike, prevPoolImpl: AddressLike]; type OutputTuple = [poolImpl: string, prevPoolImpl: string]; interface OutputObject { poolImpl: string; prevPoolImpl: 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; allowedPoolCreators: TypedContractMethod<[ poolCreator: AddressLike ], [ boolean ], "view">; createPool: TypedContractMethod<[ name: string, signer: AddressLike ], [ void ], "nonpayable">; initialize: TypedContractMethod<[router: AddressLike], [void], "nonpayable">; router: TypedContractMethod<[], [string], "view">; updatePoolCreatorAuthorization: TypedContractMethod<[ poolCreator: AddressLike, status: boolean ], [ void ], "nonpayable">; updatePoolImpl: TypedContractMethod<[ poolImpl: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "allowedPoolCreators"): TypedContractMethod<[poolCreator: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "createPool"): TypedContractMethod<[ name: string, signer: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[router: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "router"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "updatePoolCreatorAuthorization"): TypedContractMethod<[ poolCreator: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updatePoolImpl"): TypedContractMethod<[poolImpl: AddressLike], [void], "nonpayable">; getEvent(key: "CreatePool"): TypedContractEvent; getEvent(key: "UpdatePoolCreatorAuthorization"): TypedContractEvent; getEvent(key: "UpdatePoolImplementation"): TypedContractEvent; filters: { "CreatePool(address,address)": TypedContractEvent; CreatePool: TypedContractEvent; "UpdatePoolCreatorAuthorization(address,bool)": TypedContractEvent; UpdatePoolCreatorAuthorization: TypedContractEvent; "UpdatePoolImplementation(address,address)": TypedContractEvent; UpdatePoolImplementation: TypedContractEvent; }; }