import type { Chain } from "../types/Chain"; import { type ToolBase } from "./ToolBase"; import type { WalletClientBase } from "./WalletClientBase"; /** * Abstract base class for plugins that provide tools for wallet interactions. */ export declare abstract class PluginBase { readonly name: string; readonly toolProviders: object[]; /** * Creates a new Plugin instance. * @param name - The name of the plugin * @param toolProviders - Array of class instances that provide tools */ constructor(name: string, toolProviders: object[]); /** * Retrieves the tools provided by the plugin. * @param wallet - The wallet client to use for tool execution * @returns An array of tools */ getTools(walletClient: TWalletClient): ToolBase[] | Promise; /** * Checks if the plugin supports a specific blockchain. * @param chain - The blockchain to check support for * @returns True if the chain is supported, false otherwise */ abstract supportsChain(chain: Chain): boolean; }