import type { FabricComponentLoader } from "./loader.js"; import type { FabricComponentEntry } from "./types.js"; import type { ComponentConfigurationStore, ComponentConfigScope, ComponentConfigSnapshot } from "./configuration.js"; export interface ComponentChangeRequest { scope?: ComponentConfigScope; entries?: FabricComponentEntry[]; remove?: string[]; reset?: string[]; } export interface ComponentChangePlan { revision: string; request: Required; changes: Array<{ id: string; operation: "add" | "replace" | "remove"; component: string; requirements: string[]; provisions: string[]; }>; warnings: string[]; sources: ComponentConfigSnapshot["sources"]; } /** Session overlay and disk reconciliation share one transaction queue; neither reloads the host. */ export declare class FabricComponentControl { #private; readonly loader: FabricComponentLoader; readonly options: { store?: ComponentConfigurationStore; initialEntries?: FabricComponentEntry[]; assertMutable?: () => void; applied?: (entries: FabricComponentEntry[]) => void; }; constructor(loader: FabricComponentLoader, options?: { store?: ComponentConfigurationStore; initialEntries?: FabricComponentEntry[]; assertMutable?: () => void; applied?: (entries: FabricComponentEntry[]) => void; }); configuration(): { removalPolicy: "drain"; error?: string; sessionOverrides: string[]; sources: import("./configuration.js").ComponentConfigSource[]; warnings: string[]; }; plan(request: ComponentChangeRequest): Promise; apply(request: ComponentChangeRequest & { expectedRevision: string; }, signal?: AbortSignal): Promise<{ components: import("./types.js").FabricComponentInfo[]; configuration: { removalPolicy: "drain"; error?: string; sessionOverrides: string[]; sources: import("./configuration.js").ComponentConfigSource[]; warnings: string[]; }; scope: ComponentConfigScope; }>; reconcile(entries?: FabricComponentEntry[]): Promise<{ components: import("./types.js").FabricComponentInfo[]; configuration: { removalPolicy: "drain"; error?: string; sessionOverrides: string[]; sources: import("./configuration.js").ComponentConfigSource[]; warnings: string[]; }; }>; reload(id?: string): Promise<{ components: import("./types.js").FabricComponentInfo[]; }>; settle(): Promise; close(): Promise; } //# sourceMappingURL=control.d.ts.map