import type { z } from "zod";
import type { OutputFormatter } from "../utils/schema-utils";
export interface FunctionRegistryEntry {
    name: string;
    /**
     * Human-readable description of the function. Surfaced as CLI help text,
     * MCP tool description, and README documentation. Prefer providing this
     * directly rather than relying solely on inputSchema.describe().
     */
    description?: string;
    type?: "list" | "item" | "create" | "update" | "delete" | "function";
    itemType?: string;
    returnType?: string;
    inputSchema?: z.ZodSchema;
    inputParameters?: Array<{
        name: string;
        schema: z.ZodSchema;
    }>;
    outputSchema?: z.ZodSchema;
    categories: string[];
    resolvers?: Record<string, any>;
    packages?: string[];
    /**
     * True if the plugin is registered only in the experimental SDK
     * factory. See `PluginMeta.experimental`.
     */
    experimental?: boolean;
    /** Confirmation prompt type - prompts user before executing */
    confirm?: "create-secret" | "delete";
    /**
     * Optional deprecation metadata for commands.
     */
    deprecation?: FunctionDeprecation;
    /** Short flag aliases for CLI options (e.g., { request: "X", header: "H" }) */
    aliases?: Record<string, string>;
    /** Output formatter with optional page-level enrichment (mirrors resolvers for output) */
    formatter?: OutputFormatter;
    /** Defaults to true. Set to false to suppress --json (e.g. login/logout/init). */
    supportsJsonOutput: boolean;
}
export interface FunctionDeprecation {
    /** User-facing deprecation message for why/how to migrate */
    message: string;
}
export interface RegistryResult {
    functions: FunctionRegistryEntry[];
    categories: {
        key: string;
        title: string;
        titlePlural: string;
        functions: string[];
    }[];
}
//# sourceMappingURL=registry.d.ts.map