import type { TerminalBlock } from "./cli/TerminalLayout.ts";

export type ToolFunc<T extends unknown[]> = (...args: T) => Promise<void>;
export interface ITool {
  name: string;
  description: string;
  run: ToolFunc<any[]>;
  help?: () => Promise<void> | void;
  done?: () => Promise<void> | void;
  setBlock?: (block: TerminalBlock) => void;
}

export type callback = (...args: any[]) => any;
