import type { Aggregate } from "./Aggregate.js"; import type { ColumnConfigValues } from "./ColumnConfigValues.js"; import type { Expressions } from "./Expressions.js"; import type { Filter } from "./Filter.js"; import type { FilterReducer } from "./FilterReducer.js"; import type { GroupRollupMode } from "./GroupRollupMode.js"; import type { Sort } from "./Sort.js"; import type { JsonValue } from "./serde_json/JsonValue.js"; /** * The state of an entire `custom_elements::PerspectiveViewerElement` component * and its `Plugin`. */ export type ViewerConfig = { version: V; columns_config: { [key in string]?: ColumnConfigValues; }; plugin: string; plugin_config: JsonValue; settings: boolean; table: string | null; theme: string | null; title: string | null; group_by: Array; split_by: Array; sort: Array; filter: Array; group_rollup_mode: GroupRollupMode; filter_op?: FilterReducer; expressions: Expressions; columns: Array; aggregates: { [key in string]?: Aggregate; }; group_by_depth?: number | null; };