/** * Copyright 2022 Gravwell, Inc. All rights reserved. * * Contact: [legal@gravwell.io](mailto:legal@gravwell.io) * * This software may be modified and distributed under the terms of the MIT * license. See the LICENSE file for details. */ export declare const ALL_MONACO_EDITOR_THEMES: readonly ["vs", "vs-dark", "hc-black", "hc-light"]; export declare type MonacoEditorTheme = typeof ALL_MONACO_EDITOR_THEMES[number]; export declare const MENU_APPEARANCE_OPTIONS: readonly ["hide", "sticky"]; export declare type MenuAppearance = typeof MENU_APPEARANCE_OPTIONS[number]; export interface UserPreferences { systemsHealth?: { topology?: { displayOptions: Array; }; } | undefined; system?: System; editor?: EditorTheme; menu?: MenuAppearance; interfaceTheme?: string; chartTheme?: string; point2PointTheme?: string; homepage?: string | null; rendererSubstitutions?: { emptyCoords?: { lat: number; lng: number; }; }; maps?: { center?: { zoom?: number; lat?: number; lng?: number; }; }; dashboardAutosave?: boolean; developer?: boolean; experimental?: boolean; explorer?: ExplorerPreferences | undefined; lists?: AllListPreferences | undefined; treeViewDepth?: TreeViewDepth | undefined; wordcloud?: { hiddenWords: Array; } | undefined; timeframes?: Array | undefined; queryStudio?: { paneSettings?: Array<{ id: string; size?: number | '*' | undefined; }> | undefined; detailedViewType?: 'tree' | 'json' | 'table' | undefined; } | undefined; monacoEditorSettings?: { /** https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html#theme */ theme?: MonacoEditorTheme; /** https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html#fontSize */ fontSize?: number; /** https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html#fontFamily */ fontFamily?: string; /** https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html#wordWrap */ wordWrap?: 'bounded' | 'off' | 'on' | 'wordWrapColumn'; /** https://microsoft.github.io/monaco-editor/docs.html#interfaces/editor.IStandaloneEditorConstructionOptions.html#wordWrapColumn */ wordWrapColumn?: number; } | undefined; } export declare type TreeViewDepth = number | 'all'; export declare enum DisplayOption { Hardware = 0, Disks = 1, Indexers = 2, Wells = 3, FederatorsIngesters = 4, Listeners = 5 } export declare type AllListPreferences = Record; export declare type ListPreferences = { showFilters: boolean; layout: ListLayout; }; export declare enum ListLayout { cards = "cards", rows = "rows" } export interface ExplorerPreferences { layout: SlimLayout; } export declare type SlimLayout = { id: LayoutID; panes: Array; }; export declare type LayoutID = 'top' | 'bottom' | 'left' | 'right'; export declare type SlimPaneSettings = Omit; /** * Pane settings * * Pane can be a as-split or as-split-area component/directive */ export interface PaneSettings { id: ExplorerPaneID; direction?: PaneDirection; order?: number; size?: number; children?: Array; } export declare type ExplorerPaneID = 'main' | 'data' | 'filtersQuery' | 'filters' | 'query'; export declare type PaneDirection = 'vertical' | 'horizontal'; export interface System { dismiss?: Array; views?: { [key: string]: number; }; favs?: Array; welcome?: number; onboarding?: { percentage?: number; completed?: Array; }; } export interface EditorTheme { fontSize?: FontSize; theme?: Theme; mode?: string; } export declare type FontSize = number; export declare type Theme = null | 'dracula' | 'chrome' | 'cobalt' | 'monokai'; export declare type PreferencesTimeframeEntry = PreferencesSystemTimeframe | PreferencesCustomTimeframe; export interface PreferencesSystemTimeframe { type: TimeframeType; hidden?: boolean; } export declare type PreferencesDurationTimeframe = Omit; export declare type PreferencesRangeTimeframe = { type: RangeTimeframeType; start: string; end: string; timezone?: string; userLabel?: string | undefined; }; export declare type PreferencesPredefinedTimeframe = Omit; export declare type PreferencesTimeframe = PreferencesDurationTimeframe | PreferencesRangeTimeframe | PreferencesPredefinedTimeframe; export interface PreferencesCustomTimeframe { label: string; timeframe: PreferencesTimeframe; hidden?: boolean; } interface BaseTimeframe { type: TimeframeType; live: boolean; userLabel?: string | undefined; } interface DurationTimeframe extends BaseTimeframe { type: DurationTimeframeType; durationString: string; } interface PredefinedTimeframe extends BaseTimeframe { type: PredefinedTimeframeType; } declare enum PredefinedTimeframeType { preview = "preview", today = "today", yesterday = "yesterday", thisHour = "thisHour", thisWeek = "thisWeek", thisMonth = "thisMonth", thisYear = "thisYear", thisQuarter = "thisQuarter", lastHour = "PT1H", last24Hours = "P1DT", last7Days = "P7DT", lastMonth = "P30DT", last3Months = "P3MT", last6Months = "P6MT", last9Months = "P9MT", last12Months = "P1YT" } declare enum DurationTimeframeType { manual = "manual", iso = "iso" } declare enum RangeTimeframeType { dates = "dates", timestamps = "timestamps" } declare type TimeframeType = PredefinedTimeframeType | DurationTimeframeType | RangeTimeframeType; export declare const isPreferencesRangeTimeframe: (value: unknown) => value is PreferencesRangeTimeframe; export {};