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 IHederaTokenManager { type UpdateTokenStructStruct = { tokenName: string; tokenSymbol: string; keys: KeysStructStruct[]; second: BigNumberish; autoRenewPeriod: BigNumberish; tokenMetadataURI: string; }; type UpdateTokenStructStructOutput = [ tokenName: string, tokenSymbol: string, keys: KeysStructStructOutput[], second: bigint, autoRenewPeriod: bigint, tokenMetadataURI: string ] & { tokenName: string; tokenSymbol: string; keys: KeysStructStructOutput[]; second: bigint; autoRenewPeriod: bigint; tokenMetadataURI: string; }; type CashinRoleStructStruct = { account: AddressLike; allowance: BigNumberish; }; type CashinRoleStructStructOutput = [ account: string, allowance: bigint ] & { account: string; allowance: bigint; }; type InitializeStructStruct = { token: IHederaTokenService.HederaTokenStruct; initialTotalSupply: BigNumberish; tokenDecimals: BigNumberish; originalSender: AddressLike; reserveAddress: AddressLike; updatedAtThreshold: BigNumberish; roles: RolesStructStruct[]; cashinRole: IHederaTokenManager.CashinRoleStructStruct; tokenMetadataURI: string; }; type InitializeStructStructOutput = [ token: IHederaTokenService.HederaTokenStructOutput, initialTotalSupply: bigint, tokenDecimals: bigint, originalSender: string, reserveAddress: string, updatedAtThreshold: bigint, roles: RolesStructStructOutput[], cashinRole: IHederaTokenManager.CashinRoleStructStructOutput, tokenMetadataURI: string ] & { token: IHederaTokenService.HederaTokenStructOutput; initialTotalSupply: bigint; tokenDecimals: bigint; originalSender: string; reserveAddress: string; updatedAtThreshold: bigint; roles: RolesStructStructOutput[]; cashinRole: IHederaTokenManager.CashinRoleStructStructOutput; tokenMetadataURI: string; }; } export declare namespace IHederaTokenService { type KeyValueStruct = { inheritAccountKey: boolean; contractId: AddressLike; ed25519: BytesLike; ECDSA_secp256k1: BytesLike; delegatableContractId: AddressLike; }; type KeyValueStructOutput = [ inheritAccountKey: boolean, contractId: string, ed25519: string, ECDSA_secp256k1: string, delegatableContractId: string ] & { inheritAccountKey: boolean; contractId: string; ed25519: string; ECDSA_secp256k1: string; delegatableContractId: string; }; type TokenKeyStruct = { keyType: BigNumberish; key: IHederaTokenService.KeyValueStruct; }; type TokenKeyStructOutput = [ keyType: bigint, key: IHederaTokenService.KeyValueStructOutput ] & { keyType: bigint; key: IHederaTokenService.KeyValueStructOutput; }; type ExpiryStruct = { second: BigNumberish; autoRenewAccount: AddressLike; autoRenewPeriod: BigNumberish; }; type ExpiryStructOutput = [ second: bigint, autoRenewAccount: string, autoRenewPeriod: bigint ] & { second: bigint; autoRenewAccount: string; autoRenewPeriod: bigint; }; type HederaTokenStruct = { name: string; symbol: string; treasury: AddressLike; memo: string; tokenSupplyType: boolean; maxSupply: BigNumberish; freezeDefault: boolean; tokenKeys: IHederaTokenService.TokenKeyStruct[]; expiry: IHederaTokenService.ExpiryStruct; }; type HederaTokenStructOutput = [ name: string, symbol: string, treasury: string, memo: string, tokenSupplyType: boolean, maxSupply: bigint, freezeDefault: boolean, tokenKeys: IHederaTokenService.TokenKeyStructOutput[], expiry: IHederaTokenService.ExpiryStructOutput ] & { name: string; symbol: string; treasury: string; memo: string; tokenSupplyType: boolean; maxSupply: bigint; freezeDefault: boolean; tokenKeys: IHederaTokenService.TokenKeyStructOutput[]; expiry: IHederaTokenService.ExpiryStructOutput; }; } export interface HederaTokenManagerFacetInterface extends Interface { getFunction(nameOrSignature: "balanceOf" | "decimals" | "getMetadata" | "getStaticFunctionSelectors" | "getStaticInterfaceIds" | "getStaticResolverKey" | "initialize" | "name" | "symbol" | "totalSupply" | "updateToken"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Initialized" | "MetadataSet" | "RoleAdded" | "RoleGranted" | "RoleRemoved" | "RoleRevoked" | "SupplierAllowanceDecreased" | "TokenTransfer" | "TokenUpdated"): EventFragment; encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string; encodeFunctionData(functionFragment: "decimals", values?: undefined): string; encodeFunctionData(functionFragment: "getMetadata", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticFunctionSelectors", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticInterfaceIds", values?: undefined): string; encodeFunctionData(functionFragment: "getStaticResolverKey", values?: undefined): string; encodeFunctionData(functionFragment: "initialize", values: [IHederaTokenManager.InitializeStructStruct]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "symbol", values?: undefined): string; encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string; encodeFunctionData(functionFragment: "updateToken", values: [IHederaTokenManager.UpdateTokenStructStruct]): string; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getMetadata", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticFunctionSelectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticInterfaceIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getStaticResolverKey", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateToken", data: BytesLike): Result; } 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 MetadataSetEvent { type InputTuple = [admin: AddressLike, metadata: string]; type OutputTuple = [admin: string, metadata: string]; interface OutputObject { admin: string; metadata: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleAddedEvent { type InputTuple = [role: BytesLike, sender: AddressLike]; type OutputTuple = [role: string, sender: string]; interface OutputObject { role: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleGrantedEvent { type InputTuple = [ role: BytesLike, account: AddressLike, sender: AddressLike ]; type OutputTuple = [role: string, account: string, sender: string]; interface OutputObject { role: string; account: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleRemovedEvent { type InputTuple = [pos: BigNumberish, sender: AddressLike]; type OutputTuple = [pos: bigint, sender: string]; interface OutputObject { pos: bigint; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RoleRevokedEvent { type InputTuple = [ role: BytesLike, account: AddressLike, sender: AddressLike ]; type OutputTuple = [role: string, account: string, sender: string]; interface OutputObject { role: string; account: string; sender: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SupplierAllowanceDecreasedEvent { type InputTuple = [ sender: AddressLike, supplier: AddressLike, amount: BigNumberish, oldAllowance: BigNumberish, newAllowance: BigNumberish ]; type OutputTuple = [ sender: string, supplier: string, amount: bigint, oldAllowance: bigint, newAllowance: bigint ]; interface OutputObject { sender: string; supplier: string; amount: bigint; oldAllowance: bigint; newAllowance: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TokenTransferEvent { type InputTuple = [ token: AddressLike, sender: AddressLike, receiver: AddressLike, amount: BigNumberish ]; type OutputTuple = [ token: string, sender: string, receiver: string, amount: bigint ]; interface OutputObject { token: string; sender: string; receiver: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TokenUpdatedEvent { type InputTuple = [ token: AddressLike, updateTokenStruct: IHederaTokenManager.UpdateTokenStructStruct ]; type OutputTuple = [ token: string, updateTokenStruct: IHederaTokenManager.UpdateTokenStructStructOutput ]; interface OutputObject { token: string; updateTokenStruct: IHederaTokenManager.UpdateTokenStructStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface HederaTokenManagerFacet extends BaseContract { connect(runner?: ContractRunner | null): HederaTokenManagerFacet; waitForDeployment(): Promise; interface: HederaTokenManagerFacetInterface; 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; balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; decimals: TypedContractMethod<[], [bigint], "view">; getMetadata: TypedContractMethod<[], [string], "view">; getStaticFunctionSelectors: TypedContractMethod<[], [string[]], "view">; getStaticInterfaceIds: TypedContractMethod<[], [string[]], "view">; getStaticResolverKey: TypedContractMethod<[], [string], "view">; initialize: TypedContractMethod<[ init: IHederaTokenManager.InitializeStructStruct ], [ string ], "payable">; name: TypedContractMethod<[], [string], "view">; symbol: TypedContractMethod<[], [string], "view">; totalSupply: TypedContractMethod<[], [bigint], "view">; updateToken: TypedContractMethod<[ updatedToken: IHederaTokenManager.UpdateTokenStructStruct ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[account: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "decimals"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getMetadata"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getStaticFunctionSelectors"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getStaticInterfaceIds"): TypedContractMethod<[], [string[]], "view">; getFunction(nameOrSignature: "getStaticResolverKey"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[ init: IHederaTokenManager.InitializeStructStruct ], [ string ], "payable">; getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "symbol"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "totalSupply"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "updateToken"): TypedContractMethod<[ updatedToken: IHederaTokenManager.UpdateTokenStructStruct ], [ void ], "nonpayable">; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "MetadataSet"): TypedContractEvent; getEvent(key: "RoleAdded"): TypedContractEvent; getEvent(key: "RoleGranted"): TypedContractEvent; getEvent(key: "RoleRemoved"): TypedContractEvent; getEvent(key: "RoleRevoked"): TypedContractEvent; getEvent(key: "SupplierAllowanceDecreased"): TypedContractEvent; getEvent(key: "TokenTransfer"): TypedContractEvent; getEvent(key: "TokenUpdated"): TypedContractEvent; filters: { "Initialized(bytes32)": TypedContractEvent; Initialized: TypedContractEvent; "MetadataSet(address,string)": TypedContractEvent; MetadataSet: TypedContractEvent; "RoleAdded(bytes32,address)": TypedContractEvent; RoleAdded: TypedContractEvent; "RoleGranted(bytes32,address,address)": TypedContractEvent; RoleGranted: TypedContractEvent; "RoleRemoved(uint256,address)": TypedContractEvent; RoleRemoved: TypedContractEvent; "RoleRevoked(bytes32,address,address)": TypedContractEvent; RoleRevoked: TypedContractEvent; "SupplierAllowanceDecreased(address,address,uint256,uint256,uint256)": TypedContractEvent; SupplierAllowanceDecreased: TypedContractEvent; "TokenTransfer(address,address,address,int64)": TypedContractEvent; TokenTransfer: TypedContractEvent; "TokenUpdated(address,tuple)": TypedContractEvent; TokenUpdated: TypedContractEvent; }; }