import type { DomainVerbosity } from '../runtime/notifications/types.js'; import type { FeatureFlagReader } from '../runtime/feature-flags/index.js'; export type ModePreset = 'default' | 'vibecoding' | 'justvibes' | (string & Record); export interface VerbosityDefaults { write: string; edit: string; read: string; grep: string; glob: string; exec: string; } export interface ModeDefinition { name: ModePreset; description: string; verbosityDefaults: Partial; enforcement: 'strict' | 'advisory'; } export type HITLMode = 'quiet' | 'balanced' | 'operator'; export interface HITLModeDefinition { name: HITLMode; description: string; defaultDomainVerbosity: DomainVerbosity; quietWhileTyping: boolean; batchWindowMs: number; } export declare const HITL_QUIET: HITLModeDefinition; export declare const HITL_BALANCED: HITLModeDefinition; export declare const HITL_OPERATOR: HITLModeDefinition; export declare class ModeManager { private currentMode; private modes; private readonly featureFlags; private hitlMode; private domainOverrides; constructor(options?: { readonly featureFlags?: FeatureFlagReader; }); private hitlEnabled; private requireHitlEnabled; getMode(): ModePreset; getModeDefinition(): ModeDefinition; setMode(mode: ModePreset): void; listModes(): ModeDefinition[]; registerMode(def: ModeDefinition): void; getVerbosityDefaults(): Partial; getHITLMode(): HITLMode; getHITLPreset(): HITLModeDefinition; /** * Switch the active HITL mode. * * Switching modes clears all per-domain verbosity overrides that may have * been set via {@link setDomainVerbosity}. This ensures the new mode's * `defaultDomainVerbosity` applies uniformly until the caller re-establishes * any domain-specific overrides. */ setHITLMode(mode: HITLMode): void; listHITLPresets(): HITLModeDefinition[]; setDomainVerbosity(domain: string, verbosity: DomainVerbosity): void; getDomainVerbosity(domain: string): DomainVerbosity; getDomainOverrides(): Record; applyToRouter(router: { setQuietWhileTyping(enabled: boolean): void; setBatchWindowMs?(ms: number): void; setDefaultDomainVerbosity?(verbosity: DomainVerbosity): void; setDomainVerbosity(domain: string, verbosity: DomainVerbosity): void; }): void; } //# sourceMappingURL=mode-manager.d.ts.map