import { z } from "zod"; import type { Provider } from "@mariozechner/lemmy"; import type { ModelValidationConfig } from "./provider-validation.js"; /** * Autocomplete suggestion item */ export interface CompletionItem { value: string; label: string; description?: string; type: "provider" | "model" | "option" | "enum_value"; } /** * Configuration for autocomplete generation */ export interface AutocompleteConfig { /** Model validation configuration */ modelConfig: ModelValidationConfig; /** Schema configuration for option completion */ schemas: Record; /** Whether to include unknown models in completions */ includeUnknownModels?: boolean; /** Maximum number of suggestions to return */ maxSuggestions?: number; } /** * Generate provider completions */ export declare function generateProviderCompletions(config: AutocompleteConfig): CompletionItem[]; /** * Generate model completions for a specific provider */ export declare function generateModelCompletions(provider: Provider, config: AutocompleteConfig, filter?: string): CompletionItem[]; /** * Generate option completions for a provider */ export declare function generateOptionCompletions(provider: string, config: AutocompleteConfig, filter?: string): CompletionItem[]; /** * Generate enum value completions for a specific option */ export declare function generateEnumCompletions(provider: string, field: string, config: AutocompleteConfig, filter?: string): CompletionItem[]; /** * Context-aware completion generation */ export interface CompletionContext { /** Current command line arguments */ args: string[]; /** Current cursor position in args */ cursorPosition: number; /** Partial text being completed */ partial: string; } /** * Generate context-aware completions */ export declare function generateContextualCompletions(context: CompletionContext, config: AutocompleteConfig): CompletionItem[]; /** * Format completions for shell completion scripts */ export declare function formatForShell(completions: CompletionItem[], format?: "bash" | "zsh" | "fish"): string; /** * Generate completion suggestions for a partial command line */ export declare function generateCompletions(commandLine: string, config: AutocompleteConfig): CompletionItem[]; /** * Create a completion function for use with CLI libraries */ export declare function createCompletionFunction(config: AutocompleteConfig): (commandLine: string) => string[]; /** * Create provider-specific model completions */ export declare function createProviderModelCompletions(providers: Provider[], config: AutocompleteConfig): Record; /** * Get model suggestions with capability filtering */ export declare function getModelSuggestions(provider: Provider, config: AutocompleteConfig, capabilities?: { tools?: boolean; images?: boolean; minContextWindow?: number; }): CompletionItem[]; //# sourceMappingURL=autocomplete.d.ts.map