import { z } from 'zod'; /** * Zod schema for configuration validation */ declare const ChunkingConfigSchema: z.ZodObject<{ maxLines: z.ZodOptional; overlap: z.ZodOptional; }, z.core.$strip>; declare const SearchConfigSchema: z.ZodObject<{ semanticWeight: z.ZodOptional; keywordWeight: z.ZodOptional; autoReindex: z.ZodOptional; }, z.core.$strip>; declare const DashboardConfigSchema: z.ZodObject<{ enabled: z.ZodOptional; port: z.ZodOptional; openBrowser: z.ZodOptional; }, z.core.$strip>; declare const IndexingConfigSchema: z.ZodObject<{ batchDelayMs: z.ZodOptional; batchSize: z.ZodOptional; }, z.core.$strip>; declare const ConfigSchema: z.ZodObject<{ patterns: z.ZodOptional>; excludePatterns: z.ZodOptional>; embedding: z.ZodOptional>; model: z.ZodOptional; ollamaConcurrency: z.ZodOptional; }, z.core.$strip>>; chunking: z.ZodOptional; overlap: z.ZodOptional; }, z.core.$strip>>; search: z.ZodOptional; keywordWeight: z.ZodOptional; autoReindex: z.ZodOptional; }, z.core.$strip>>; dashboard: z.ZodOptional; port: z.ZodOptional; openBrowser: z.ZodOptional; }, z.core.$strip>>; indexing: z.ZodOptional; batchSize: z.ZodOptional; }, z.core.$strip>>; instructions: z.ZodOptional; }, z.core.$strip>; export type GlanceyConfig = z.infer; export type ChunkingConfig = z.infer; export type SearchConfig = z.infer; export type DashboardConfig = z.infer; export type IndexingConfig = z.infer; /** * Default chunking configuration */ export declare const DEFAULT_CHUNKING: Required; /** * Default search configuration */ export declare const DEFAULT_SEARCH: Required; /** * Default dashboard configuration */ export declare const DEFAULT_DASHBOARD: Required; /** * Default indexing configuration */ export declare const DEFAULT_INDEXING: Required; export declare const DEFAULT_CONFIG: GlanceyConfig; export declare function loadConfig(projectPath: string): Promise; /** * Get default file patterns */ export declare function getDefaultPatterns(): string[]; /** * Get default exclude patterns */ export declare function getDefaultExcludePatterns(): string[]; /** * Get chunking config with defaults */ export declare function getChunkingConfig(config: GlanceyConfig): Required; /** * Get search config with defaults */ export declare function getSearchConfig(config: GlanceyConfig): Required; /** * Get dashboard config with defaults */ export declare function getDashboardConfig(config: GlanceyConfig): Required; /** * Get indexing config with defaults */ export declare function getIndexingConfig(config: GlanceyConfig): Required; /** * Get project instructions from config */ export declare function getInstructions(config: GlanceyConfig): string | undefined; /** * Secrets stored separately from main config (should be gitignored) */ export interface GlanceySecrets { geminiApiKey?: string; } /** * Load secrets from .glancey/secrets.json */ export declare function loadSecrets(projectPath: string): Promise; /** * Save secrets to .glancey/secrets.json */ export declare function saveSecrets(projectPath: string, secrets: GlanceySecrets): Promise; /** * Embedding settings for dashboard configuration */ export interface EmbeddingSettings { backend: 'ollama' | 'gemini'; apiKey?: string; ollamaUrl?: string; /** Number of concurrent requests to Ollama */ ollamaConcurrency?: number; /** Number of chunks per embedding batch */ batchSize?: number; } /** * Save embedding settings from dashboard * - Stores backend preference in .glancey.local.json (gitignored, user-specific) * - Stores API key in .glancey/secrets.json (gitignored) */ export declare function saveEmbeddingSettings(projectPath: string, settings: EmbeddingSettings): Promise; /** * Get current embedding settings including secrets */ export declare function getEmbeddingSettings(projectPath: string): Promise<{ backend: 'ollama' | 'gemini'; hasApiKey: boolean; ollamaUrl?: string; ollamaConcurrency: number; batchSize: number; }>; /** * Dashboard settings for dashboard configuration via UI */ export interface DashboardSettings { enabled: boolean; port?: number; openBrowser?: boolean; } /** * Save dashboard settings to .glancey.local.json (gitignored, user-specific) */ export declare function saveDashboardSettings(projectPath: string, settings: DashboardSettings): Promise; /** * Get current dashboard settings */ export declare function getDashboardSettings(projectPath: string): Promise<{ enabled: boolean; port: number; openBrowser: boolean; }>; /** * Search weights settings for dashboard configuration */ export interface SearchWeightsSettings { semanticWeight: number; keywordWeight: number; } /** * Save search weights to .glancey.local.json (gitignored, user-specific) */ export declare function saveSearchWeights(projectPath: string, settings: SearchWeightsSettings): Promise; /** * Get current search weights */ export declare function getSearchWeights(projectPath: string): Promise; /** * Add a pattern to include or exclude patterns in .glancey.local.json */ export declare function addPattern(projectPath: string, pattern: string, type: 'include' | 'exclude'): Promise; /** * Remove a pattern from include or exclude patterns in .glancey.local.json */ export declare function removePattern(projectPath: string, pattern: string, type: 'include' | 'exclude'): Promise; export {}; //# sourceMappingURL=config.d.ts.map