import type { PluginInput } from "@opencode-ai/plugin"; type Permission = "ask" | "allow" | "deny"; type CompressMode = "range" | "message"; export interface Deduplication { enabled: boolean; protectedTools: string[]; } export interface CompressConfig { mode: CompressMode; permission: Permission; showCompression: boolean; summaryBuffer: boolean; maxContextLimit: number | `${number}%`; minContextLimit: number | `${number}%`; modelMaxLimits?: Record; modelMinLimits?: Record; nudgeFrequency: number; iterationNudgeThreshold: number; nudgeForce: "strong" | "soft"; protectedTools: string[]; protectUserMessages: boolean; } export interface Commands { enabled: boolean; protectedTools: string[]; } export interface ManualModeConfig { enabled: boolean; automaticStrategies: boolean; } export interface PurgeErrors { enabled: boolean; turns: number; protectedTools: string[]; } export interface TurnProtection { enabled: boolean; turns: number; } export interface ExperimentalConfig { allowSubAgents: boolean; customPrompts: boolean; } export interface PluginConfig { enabled: boolean; debug: boolean; pruneNotification: "off" | "minimal" | "detailed"; pruneNotificationType: "chat" | "toast"; commands: Commands; manualMode: ManualModeConfig; turnProtection: TurnProtection; experimental: ExperimentalConfig; protectedFilePatterns: string[]; compress: CompressConfig; strategies: { deduplication: Deduplication; purgeErrors: PurgeErrors; }; } export declare const VALID_CONFIG_KEYS: Set; export declare function getInvalidConfigKeys(userConfig: Record): string[]; interface ValidationError { key: string; expected: string; actual: string; } export declare function validateConfigTypes(config: Record): ValidationError[]; export declare function getConfig(ctx: PluginInput): PluginConfig; export {}; //# sourceMappingURL=config.d.ts.map