import { Guid, IIcon, MultilingualString, SpacingSettings } from "@omnia/fx-models"; export interface DashboardScopeMessage { id: Guid; title: string; } export interface DashboardScope extends DashboardScopeMessage { scopeQuery?: { [filterId: string]: FilterValue; }; filters: DashboardFilter[]; metrics: DashboardMetricBlock[]; } export interface DashboardViewConfig { indicatorCols: number; filterCols: number; } export interface DashboardMetric { scopeId: Guid; id: Guid; title: string; indicatorElementToRender: string; detailElementToRender: string; settingElementToRender?: string; } export interface DashboardMetricSettings { multilingualTitle: MultilingualString; id: string; description?: MultilingualString; icon?: IIcon; color?: string; } export interface DashboardMetricBlock extends DashboardMetric { config: T; } export interface GovernanceDashboardsBlockSettings { title: MultilingualString; scope: DashboardScope; filtersPerRow: number; indicatorsPerRow: number; spacing?: SpacingSettings; height: number; } export interface DashboardFilter extends FilterDefinitionIdentity { scopeId: Guid; filterId: Guid; title: string; elementToRender: string; scopeQuery?: boolean; supportedFilterIds?: Guid[]; } export interface FilterDefinitionIdentity { readonly filterId: Guid; } export declare abstract class FilterValue implements FilterDefinitionIdentity { abstract readonly filterId: Guid; }