export interface ToolAnnotations { readOnlyHint?: boolean; destructiveHint?: boolean; idempotentHint?: boolean; openWorldHint?: boolean; } export interface ToolDef { name: string; description?: string; annotations?: ToolAnnotations; inputSchema: { type: string; properties?: Record; required?: string[]; $defs?: Record; }; } export interface SchemaProperty { type?: string; format?: string; description?: string; enum?: string[]; items?: SchemaProperty; default?: unknown; examples?: unknown[]; anyOf?: SchemaProperty[]; $ref?: string; properties?: Record; required?: string[]; } export interface CLIConfig { readonly?: boolean; } export interface Config { client_id?: string; client_secret?: string; access_token?: string; refresh_token?: string; expires_at?: number; auth_type?: "oauth" | "token"; tools_cache?: { tools: ToolDef[]; fetched_at: number; version?: number; }; config?: CLIConfig; } export declare const TOOLS_CACHE_VERSION = 2; export declare function getConfigPath(): string; export declare function loadConfig(): Promise; export declare function saveConfig(config: Config): Promise; export declare function isCacheValid(config: Config): boolean; export declare function getConfigValue(config: Config, key: string): unknown; export declare function getConfigDefault(key: string): unknown; export declare function getAllConfigEntries(config: Config): Record; export declare function setConfigValue(config: Config, key: string, rawValue: string): void; export declare function filterReadOnlyTools(tools: ToolDef[]): ToolDef[];