import type { CommandCtor, CommandEntry } from "@gajae-code/utils/cli"; export type FigName = string | string[]; export interface FigArg { name: string; description?: string; isOptional?: boolean; isVariadic?: boolean; suggestions?: string[]; } export interface FigOption { name: FigName; description?: string; args?: FigArg; isRepeatable?: boolean; } export interface FigSubcommand { name: FigName; description?: string; options?: FigOption[]; args?: FigArg | FigArg[]; } export interface FigSpec extends FigSubcommand { name: string; subcommands?: FigSubcommand[]; } export type InshellisenseIndexStatus = "created" | "updated" | "already-compatible" | "overwritten"; export interface InstallGjcInshellisenseSpecOptions { dir?: string; force?: boolean; } export interface InstallGjcInshellisenseSpecResult { directory: string; specPath: string; indexPath: string; indexStatus: InshellisenseIndexStatus; } export declare function defaultInshellisenseSpecDir(homeDir?: string): string; export declare function buildGjcFigSpec(entries: CommandEntry[], rootCommandOverride?: CommandCtor): Promise; export declare function renderFigSpecModule(spec: FigSpec): string; export declare function renderInshellisenseIndexModule(): string; export declare function installGjcInshellisenseSpec(spec: FigSpec, options?: InstallGjcInshellisenseSpecOptions): Promise;