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 type KeysStructStruct = { keyType: BigNumberish; publicKey: BytesLike; isEd25519: boolean; }; export type KeysStructStructOutput = [ keyType: bigint, publicKey: string, isEd25519: boolean ] & { keyType: bigint; publicKey: string; isEd25519: boolean; }; export type RolesStructStruct = { role: BytesLike; account: AddressLike; }; export type RolesStructStructOutput = [role: string, account: string] & { role: string; account: string; }; export declare namespace IStableCoinFactory { type DeployedStableCoinStruct = { stableCoinProxy: AddressLike; tokenAddress: AddressLike; reserveProxy: AddressLike; }; type DeployedStableCoinStructOutput = [ stableCoinProxy: string, tokenAddress: string, reserveProxy: string ] & { stableCoinProxy: string; tokenAddress: string; reserveProxy: string; }; type ResolverProxyConfigurationStruct = { key: BytesLike; version: BigNumberish; }; type ResolverProxyConfigurationStructOutput = [ key: string, version: bigint ] & { key: string; version: bigint; }; type TokenStructStruct = { tokenName: string; tokenSymbol: string; freeze: boolean; supplyType: boolean; tokenMaxSupply: BigNumberish; tokenInitialSupply: BigNumberish; tokenDecimals: BigNumberish; reserveAddress: AddressLike; updatedAtThreshold: BigNumberish; reserveInitialAmount: BigNumberish; createReserve: boolean; keys: KeysStructStruct[]; roles: RolesStructStruct[]; cashinRole: IHederaTokenManager.CashinRoleStructStruct; metadata: string; businessLogicResolverAddress: AddressLike; stableCoinConfigurationId: IStableCoinFactory.ResolverProxyConfigurationStruct; reserveConfigurationId: IStableCoinFactory.ResolverProxyConfigurationStruct; }; type TokenStructStructOutput = [ tokenName: string, tokenSymbol: string, freeze: boolean, supplyType: boolean, tokenMaxSupply: bigint, tokenInitialSupply: bigint, tokenDecimals: bigint, reserveAddress: string, updatedAtThreshold: bigint, reserveInitialAmount: bigint, createReserve: boolean, keys: KeysStructStructOutput[], roles: RolesStructStructOutput[], cashinRole: IHederaTokenManager.CashinRoleStructStructOutput, metadata: string, businessLogicResolverAddress: string, stableCoinConfigurationId: IStableCoinFactory.ResolverProxyConfigurationStructOutput, reserveConfigurationId: IStableCoinFactory.ResolverProxyConfigurationStructOutput ] & { tokenName: string; tokenSymbol: string; freeze: boolean; supplyType: boolean; tokenMaxSupply: bigint; tokenInitialSupply: bigint; tokenDecimals: bigint; reserveAddress: string; updatedAtThreshold: bigint; reserveInitialAmount: bigint; createReserve: boolean; keys: KeysStructStructOutput[]; roles: RolesStructStructOutput[]; cashinRole: IHederaTokenManager.CashinRoleStructStructOutput; metadata: string; businessLogicResolverAddress: string; stableCoinConfigurationId: IStableCoinFactory.ResolverProxyConfigurationStructOutput; reserveConfigurationId: IStableCoinFactory.ResolverProxyConfigurationStructOutput; }; } export declare namespace IHederaTokenManager { type CashinRoleStructStruct = { account: AddressLike; allowance: BigNumberish; }; type CashinRoleStructStructOutput = [ account: string, allowance: bigint ] & { account: string; allowance: bigint; }; } export interface StableCoinFactoryFacetInterface extends Interface { getFunction(nameOrSignature: "deployStableCoin" | "getStaticFunctionSelectors" | "getStaticInterfaceIds" | "getStaticResolverKey"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Deployed" | "Initialized" | "StableCoinFactoryInitialized"): EventFragment; encodeFunctionData(functionFragment: "deployStableCoin", values: [IStableCoinFactory.TokenStructStruct]): string; encodeFunctionData(functionFragment: "getStaticFunctionSelectors", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticInterfaceIds", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticResolverKey", values?: undefined): string; decodeFunctionResult(functionFragment: "deployStableCoin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticFunctionSelectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticInterfaceIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticResolverKey", data: BytesLike): Result; } export declare namespace DeployedEvent { type InputTuple = [ deployedStableCoin: IStableCoinFactory.DeployedStableCoinStruct ]; type OutputTuple = [ deployedStableCoin: IStableCoinFactory.DeployedStableCoinStructOutput ]; interface OutputObject { deployedStableCoin: IStableCoinFactory.DeployedStableCoinStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InitializedEvent { type InputTuple = [facet: BytesLike]; type OutputTuple = [facet: string]; interface OutputObject { facet: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace StableCoinFactoryInitializedEvent { type InputTuple = []; type OutputTuple = []; interface OutputObject { } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface StableCoinFactoryFacet extends BaseContract { connect(runner?: ContractRunner | null): StableCoinFactoryFacet; waitForDeployment(): Promise; interface: StableCoinFactoryFacetInterface; 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; deployStableCoin: TypedContractMethod<[ requestedToken: IStableCoinFactory.TokenStructStruct ], [ IStableCoinFactory.DeployedStableCoinStructOutput ], "payable">; getStaticFunctionSelectors: TypedContractMethod<[], [string[]], "view">; getStaticInterfaceIds: TypedContractMethod<[], [string[]], "view">; getStaticResolverKey: TypedContractMethod<[], [string], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "deployStableCoin"): TypedContractMethod<[ requestedToken: IStableCoinFactory.TokenStructStruct ], [ IStableCoinFactory.DeployedStableCoinStructOutput ], "payable">; getFunction(nameOrSignature: "getStaticFunctionSelectors"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getStaticInterfaceIds"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getStaticResolverKey"): TypedContractMethod<[], [string], "view">; getEvent(key: "Deployed"): TypedContractEvent; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "StableCoinFactoryInitialized"): TypedContractEvent; filters: { "Deployed(tuple)": TypedContractEvent; Deployed: TypedContractEvent; "Initialized(bytes32)": TypedContractEvent; Initialized: TypedContractEvent; "StableCoinFactoryInitialized()": TypedContractEvent; StableCoinFactoryInitialized: TypedContractEvent; }; }