import { f as SettingsListData, g as ToolId, h as SwitchOptions, i as InspectResult, l as Scope, m as SettingsResult, r as EditOptions, t as ConfigObject } from "./types-lRv_6IzV.js";
import { n as SettingsAdapter } from "./interfaces-BOV8jLcZ.js";

//#region src/services/settings/adapters/base.d.ts

/**
* Abstract adapter implementation
*/
declare abstract class BaseAdapter<TConfig = ConfigObject> implements SettingsAdapter {
  abstract readonly toolId: ToolId;
  /**
  * Methods every adapter must implement
  */
  abstract resolvePath(scope: Scope): string;
  abstract validateScope(scope: Scope): boolean;
  /**
  * List all configuration entries for a scope
  */
  list(scope: Scope): Promise<SettingsListData>;
  /**
  * Default switchProfile implementation (throws unless overridden)
  */
  switchProfile(_scope: Scope, _profile: string, _options?: SwitchOptions): Promise<SettingsResult>;
  /**
  * Inspect the configuration file
  */
  inspect(scope: Scope): Promise<InspectResult>;
  /**
  * Default edit implementation (throws unless overridden)
  */
  edit(scope: Scope, _options: EditOptions): Promise<SettingsResult>;
  /**
  * Read the configuration file (subclasses may override)
  */
  protected readConfig(path: string): TConfig;
  /**
  * Write the configuration file (subclasses may override)
  */
  protected writeConfig(path: string, data: TConfig, backup?: boolean): void;
}
//#endregion
export { BaseAdapter as t };