import { ConfigManager } from '../../config/manager.js'; import type { ConfigKey } from '../../config/index.js'; export type SyncSurface = 'profiles' | 'managed' | 'settings-sync'; export type SyncDirection = 'export' | 'import' | 'apply' | 'pull' | 'push' | 'rollback'; export type SettingsSource = 'default' | 'local' | 'synced' | 'managed'; export interface SettingsSyncEvent { readonly surface: SyncSurface; readonly direction: SyncDirection; readonly path: string; readonly timestamp: number; readonly detail: string; } export interface ManagedSettingLock { readonly key: ConfigKey; readonly source: string; readonly reason: string; readonly updatedAt: number; } export interface SettingsLayerRecord { readonly key: ConfigKey; readonly value: unknown; readonly source: Exclude; readonly sourceLabel: string; readonly detail: string; readonly path?: string | undefined; readonly updatedAt: number; readonly locked?: boolean | undefined; } export interface SettingsConflictRecord { readonly key: ConfigKey; readonly localValue: unknown; readonly incomingValue: unknown; readonly source: Exclude; readonly path: string; readonly updatedAt: number; } export type SettingsConflictResolution = 'local' | 'synced'; export interface ManagedBundleChange { readonly key: ConfigKey; readonly previousValue: unknown; readonly nextValue: unknown; readonly changed: boolean; readonly locked: boolean; readonly source: string; readonly reason: string; } export interface StagedManagedBundle { readonly id: string; readonly profileName: string; readonly path: string; readonly importedAt: number; readonly changeCount: number; readonly risk: 'low' | 'medium' | 'high'; readonly changes: readonly ManagedBundleChange[]; } export interface ManagedRollbackRecord { readonly token: string; readonly profileName: string; readonly path: string; readonly appliedAt: number; readonly restoredKeys: readonly ConfigKey[]; readonly previousValues: Readonly>>; } export interface SettingsControlPlaneStore { readonly version: 2; readonly events: ReadonlyArray; readonly managedLocks: ReadonlyArray; readonly failures: ReadonlyArray<{ readonly surface: SyncSurface; readonly message: string; readonly timestamp: number; }>; readonly syncedSettings: ReadonlyArray; readonly managedSettings: ReadonlyArray; readonly conflicts: ReadonlyArray; readonly stagedManagedBundle?: StagedManagedBundle | undefined; readonly rollbackHistory: ReadonlyArray; } export interface ResolvedSettingEntry { readonly key: ConfigKey; readonly category: string; readonly effectiveValue: unknown; readonly effectiveSource: SettingsSource; readonly defaultValue: unknown; readonly localValue: unknown; readonly syncedValue?: unknown | undefined; readonly managedValue?: unknown | undefined; readonly overriddenSources: readonly SettingsSource[]; readonly locked: boolean; readonly lockReason?: string | undefined; readonly sourceLabel?: string | undefined; readonly updatedAt?: number | undefined; readonly conflict: boolean; } export interface SettingsControlPlaneSnapshot { readonly liveKeyCount: number; readonly profileCount: number; readonly managedLockCount: number; readonly resolvedCounts: Readonly>; readonly lastSync?: SettingsSyncEvent | undefined; readonly recentEvents: ReadonlyArray; readonly recentFailures: SettingsControlPlaneStore['failures']; readonly managedLocks: ReadonlyArray; readonly conflicts: ReadonlyArray; readonly stagedManagedBundle?: StagedManagedBundle | undefined; readonly rollbackHistory: ReadonlyArray; readonly resolvedEntries: ReadonlyArray; } export interface ResolvedSettingLookup { readonly entry: ResolvedSettingEntry; readonly lock?: ManagedSettingLock | undefined; readonly syncedLayer?: SettingsLayerRecord | undefined; readonly managedLayer?: SettingsLayerRecord | undefined; } export interface SettingsSyncBundle { readonly version: 1; readonly exportedAt: number; readonly source: 'settings-sync'; readonly settings: Record; } export declare function getConfigControlPlaneDir(configManager: ConfigManager): string; export declare function defaultStore(): SettingsControlPlaneStore; export declare function readStore(configDir: string): SettingsControlPlaneStore; export declare function writeStore(store: SettingsControlPlaneStore, configDir: string): void; export declare function trimStore(store: SettingsControlPlaneStore): SettingsControlPlaneStore; export declare function configSnapshot(configManager: ConfigManager): Record; export declare function sourcePriority(source: SettingsSource): number; export declare function inferRisk(changes: readonly ManagedBundleChange[]): 'low' | 'medium' | 'high'; export declare function makeRollbackToken(): string; export declare function toLayerRecord(key: ConfigKey, value: unknown, source: Exclude, sourceLabel: string, detail: string, path?: string, locked?: boolean): SettingsLayerRecord; //# sourceMappingURL=control-plane-store.d.ts.map