export type Type_DecomposeSpec = { kind: 'inputs' | 'outputs'; group_by_flux_tagg_id?: string; } | { kind: 'node_children'; dimension_id: string; } | { kind: 'flux_children'; dimension_id: string; }; export type Type_CompareSpec = { kind?: 'data_tag'; data_tagg_id: string; } | { kind: 'inputs' | 'outputs'; }; export declare const isFluxCompare: (spec: Type_CompareSpec | null | undefined) => spec is { kind: "inputs" | "outputs"; }; export interface Type_AnalysisSurfaces { tooltip?: boolean; on_node?: boolean; } export interface Type_AnalysisDescriptor { decompose: Type_DecomposeSpec | null; compare: Type_CompareSpec | null; compare_secondary?: Type_CompareSpec | null; repr?: 'donut' | 'bars'; scale_mode?: 'shared' | 'per_group'; surfaces?: Type_AnalysisSurfaces; } export declare const effectiveCompareSecondary: (d: Type_AnalysisDescriptor) => Type_CompareSpec | null; export declare const isGroupedCross: (d: Type_AnalysisDescriptor) => boolean; export declare const supportsPerGroupScale: (d: Type_AnalysisDescriptor) => boolean; export declare const effectiveDecompose: (d: Type_AnalysisDescriptor) => Type_DecomposeSpec | null; export declare const deduceRepr: (d: Type_AnalysisDescriptor) => "donut" | "bars"; export declare const isDescriptorEmpty: (d: Type_AnalysisDescriptor | undefined) => boolean;