import { ConfigScope, ProjectConfigurationData, ShortcutConfig, StatusHookConfig, WorktreeHookConfig, WorktreeConfig, CommandPresetsConfig, MergeConfig, IConfigEditor, AutoApprovalConfig } from '../../types/index.js'; /** * ConfigEditor provides scope-aware configuration editing. * The scope is determined at construction time. * * - When scope='global', uses GlobalConfigManager singleton * - When scope='project', uses ProjectConfigManager singleton * (with fallback to global if project value is undefined) * * IMPORTANT: Uses singletons to ensure that config changes are * immediately visible to all components (e.g., shortcutManager, configReader). */ export declare class ConfigEditor implements IConfigEditor { private scope; private configEditor; constructor(scope: ConfigScope); getShortcuts(): ShortcutConfig | undefined; setShortcuts(value: ShortcutConfig): void; getStatusHooks(): StatusHookConfig | undefined; setStatusHooks(value: StatusHookConfig): void; getWorktreeHooks(): WorktreeHookConfig | undefined; setWorktreeHooks(value: WorktreeHookConfig): void; getWorktreeConfig(): WorktreeConfig | undefined; setWorktreeConfig(value: WorktreeConfig): void; getCommandPresets(): CommandPresetsConfig | undefined; setCommandPresets(value: CommandPresetsConfig): void; getMergeConfig(): MergeConfig | undefined; setMergeConfig(value: MergeConfig): void; getAutoApprovalConfig(): AutoApprovalConfig | undefined; setAutoApprovalConfig(value: AutoApprovalConfig): void; reload(): void; /** * Get the current scope */ getScope(): ConfigScope; /** * Check if project has an override for a specific field */ hasProjectOverride(field: keyof ProjectConfigurationData): boolean; /** * Remove project override for a specific field */ removeProjectOverride(field: keyof ProjectConfigurationData): void; } /** * Factory function to create a ConfigEditor instance */ export declare function createConfigEditor(scope: ConfigScope): ConfigEditor;