import type { Filter } from "./Filter.js"; import type { Layout } from "./Layout.js"; import type { ViewerConfigInitial } from "./ViewerConfigInitial.js"; /** * The parse target of a whole-element config in * [`PerspectiveViewerElement::restoreWorkspace`]. Mirrors * [`WorkspaceConfig`], but `panels` entries are [`ViewerConfigInitial`]s — * every entry creates a NEW panel, so `table` is required by type (a * stray per-panel `settings` key is ignored; it is element-level state, * carried by the top-level `active` field). */ export type WorkspaceConfigUpdate = { active?: string; layout?: Layout; panels: { [key in string]?: ViewerConfigInitial; }; /** * The element-level global (master/detail cross-) filters to re-apply as * a transient overlay on every DETAIL panel. Restored as one * unattributed bucket: the next selection on any master replaces it. */ global_filters?: Array; /** * The master (filter-source) panels, by saved `panels` key. An id not in * `panels` warns and is dropped. */ masters?: Array; };