import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../common"; export declare namespace ISmartAssetBase { type TokenFootprintStruct = { issuer: AddressLike; creationTimestamp: BigNumberish; }; type TokenFootprintStructOutput = [ issuer: string, creationTimestamp: bigint ] & { issuer: string; creationTimestamp: bigint; }; type TokenHydratationParamsStruct = { tokenId: BigNumberish; imprint: BytesLike; viewKey: AddressLike; transferKey: AddressLike; creatorProvider: AddressLike; otherParams: BytesLike[]; }; type TokenHydratationParamsStructOutput = [ tokenId: bigint, imprint: string, viewKey: string, transferKey: string, creatorProvider: string, otherParams: string[] ] & { tokenId: bigint; imprint: string; viewKey: string; transferKey: string; creatorProvider: string; otherParams: string[]; }; } export interface ISmartAssetBaseInterface extends Interface { getFunction(nameOrSignature: "footprintOf" | "getTransferKey" | "getViewKey" | "hydrateToken" | "imprintOf" | "isRequestable" | "isShared" | "issuerOf" | "requestToken" | "reserveToken" | "setTokenTransferKey" | "setTokenViewKey"): FunctionFragment; encodeFunctionData(functionFragment: "footprintOf", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getTransferKey", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getViewKey", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "hydrateToken", values: [ISmartAssetBase.TokenHydratationParamsStruct]): string; encodeFunctionData(functionFragment: "imprintOf", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "isRequestable", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "isShared", values?: undefined): string; encodeFunctionData(functionFragment: "issuerOf", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "requestToken", values: [BigNumberish, BytesLike, AddressLike, boolean, AddressLike]): string; encodeFunctionData(functionFragment: "reserveToken", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "setTokenTransferKey", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "setTokenViewKey", values: [BigNumberish, AddressLike]): string; decodeFunctionResult(functionFragment: "footprintOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTransferKey", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getViewKey", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hydrateToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "imprintOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isRequestable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isShared", data: BytesLike): Result; decodeFunctionResult(functionFragment: "issuerOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "requestToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "reserveToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setTokenTransferKey", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setTokenViewKey", data: BytesLike): Result; } export interface ISmartAssetBase extends BaseContract { connect(runner?: ContractRunner | null): ISmartAssetBase; waitForDeployment(): Promise; interface: ISmartAssetBaseInterface; 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; footprintOf: TypedContractMethod<[ tokenId: BigNumberish ], [ ISmartAssetBase.TokenFootprintStructOutput ], "view">; getTransferKey: TypedContractMethod<[ tokenId: BigNumberish ], [ string ], "view">; getViewKey: TypedContractMethod<[tokenId: BigNumberish], [string], "view">; hydrateToken: TypedContractMethod<[ tokenHydratationParams: ISmartAssetBase.TokenHydratationParamsStruct ], [ void ], "nonpayable">; imprintOf: TypedContractMethod<[tokenId: BigNumberish], [string], "view">; isRequestable: TypedContractMethod<[ tokenId: BigNumberish ], [ boolean ], "view">; isShared: TypedContractMethod<[], [boolean], "view">; issuerOf: TypedContractMethod<[tokenId: BigNumberish], [string], "view">; requestToken: TypedContractMethod<[ tokenId: BigNumberish, signature: BytesLike, newOwner: AddressLike, keepTransferKey: boolean, walletProvider: AddressLike ], [ void ], "nonpayable">; reserveToken: TypedContractMethod<[ to: AddressLike, tokenId: BigNumberish ], [ void ], "nonpayable">; setTokenTransferKey: TypedContractMethod<[ tokenId: BigNumberish, key: AddressLike ], [ void ], "nonpayable">; setTokenViewKey: TypedContractMethod<[ tokenId: BigNumberish, key: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "footprintOf"): TypedContractMethod<[ tokenId: BigNumberish ], [ ISmartAssetBase.TokenFootprintStructOutput ], "view">; getFunction(nameOrSignature: "getTransferKey"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "getViewKey"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "hydrateToken"): TypedContractMethod<[ tokenHydratationParams: ISmartAssetBase.TokenHydratationParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "imprintOf"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "isRequestable"): TypedContractMethod<[tokenId: BigNumberish], [boolean], "view">; getFunction(nameOrSignature: "isShared"): TypedContractMethod<[], [boolean], "view">; getFunction(nameOrSignature: "issuerOf"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">; getFunction(nameOrSignature: "requestToken"): TypedContractMethod<[ tokenId: BigNumberish, signature: BytesLike, newOwner: AddressLike, keepTransferKey: boolean, walletProvider: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "reserveToken"): TypedContractMethod<[ to: AddressLike, tokenId: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setTokenTransferKey"): TypedContractMethod<[ tokenId: BigNumberish, key: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setTokenViewKey"): TypedContractMethod<[ tokenId: BigNumberish, key: AddressLike ], [ void ], "nonpayable">; filters: {}; }