/*
 * Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3 as published by
 * the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import { ItemStateMap, LegacyItem } from '../models/Item';
import { FilterSystemTypeGroups, LookupTable, WidgetDescriptor } from '../models';
import TranslationOrText from '../models/TranslationOrText';
import { LegacyDashboardPreferences } from '../models/Dashboard';
import ToolsPanelTarget from '../models/ToolsPanelTarget';
import { EnhancedDialogState } from '../hooks/useEnhancedDialogState';
import { HighlightMode } from '../models/GlobalState';
import { PathNavInitPayload } from '../state/actions/pathNavigator';
import { MediaCardViewModes } from '../components';
export declare function setStoredGlobalMenuSiteViewPreference(value: 'grid' | 'list', user: string): void;
export declare function getStoredGlobalMenuSiteViewPreference(user: string): 'grid' | 'list';
export declare function removeStoredGlobalMenuSiteViewPreference(user: string): void;
export declare function getStateMapFromLegacyItem(item: LegacyItem): ItemStateMap;
export declare function setStoredEditModeChoice(value: string, user: string, siteIdentifier: string): void;
export declare function getStoredEditModeChoice(user: string, siteIdentifier: string): boolean;
export declare function removeStoredEditModeChoice(user: string, siteIdentifier: string): void;
export declare function setStoredHighlightModeChoice(value: HighlightMode, user: string, siteIdentifier: string): void;
export declare function getStoredHighlightModeChoice(user: string, siteIdentifier: string): HighlightMode;
export declare function removeStoredHighlightModeChoice(user: string, siteIdentifier: string): void;
export declare function setStoredEditModePadding(value: string, user: string): void;
export declare function getStoredEditModePadding(user: string): boolean;
export declare function removeStoredEditModePadding(user: string): void;
export declare function setStoredClipboard(siteIdentifier: string, user: string, value: object): void;
export declare function getStoredClipboard(siteIdentifier: string, user: string): any;
export declare function removeStoredClipboard(siteIdentifier: string, user: string): void;
export declare function setStoredPreviewToolsPanelPage(
  siteIdentifier: string,
  user: string,
  value: WidgetDescriptor
): void;
export declare function getStoredPreviewToolsPanelPage(siteIdentifier: string, user: string): WidgetDescriptor;
export declare function removeStoredPreviewToolsPanelPage(siteIdentifier: string, user: string): void;
export type StoredPathNavState = Pick<PathNavInitPayload, 'collapsed' | 'currentPath' | 'keyword' | 'offset' | 'limit'>;
export interface StoredPathNavTree {
  expanded: string[];
  collapsed: boolean;
  keywordByPath: LookupTable<string>;
}
export declare function setStoredPathNavigator(
  siteIdentifier: string,
  user: string,
  id: string,
  value: StoredPathNavState
): void;
export declare function getStoredPathNavigator(siteIdentifier: string, user: string, id: string): StoredPathNavState;
export declare function removeStoredPathNavigator(siteIdentifier: string, user: string, id: string): void;
export declare function setStoredPathNavigatorTree(
  siteIdentifier: string,
  user: string,
  id: string,
  value: StoredPathNavTree
): void;
export declare function getStoredPathNavigatorTree(siteIdentifier: string, user: string, id: string): StoredPathNavTree;
export declare function removeStoredPathNavigatorTree(siteIdentifier: string, user: string, id: string): void;
export declare function setStoredGlobalAppOpenSidebar(user: string, value: boolean): void;
export declare function getStoredGlobalAppOpenSidebar(user: string): string;
export declare function removeStoredGlobalAppOpenSidebar(user: string): void;
export declare function createToolsPanelPage(
  title: TranslationOrText,
  widgets: WidgetDescriptor[],
  target?: ToolsPanelTarget
): WidgetDescriptor;
export declare function createWidgetDescriptor(widget: WidgetDescriptor): WidgetDescriptor;
export declare function setStoredDashboardPreferences(
  value: LegacyDashboardPreferences,
  user: string,
  siteIdentifier: string,
  dashletId: string
): void;
export declare function getStoredDashboardPreferences(
  user: string,
  siteIdentifier: string,
  dashletId: string
): LegacyDashboardPreferences;
export declare function removeStoredDashboardPreferences(user: string, siteIdentifier: string, dashletId: string): void;
export declare function setStoredLegacyComponentPanel(value: object, user: string): void;
export declare function getStoredLegacyComponentPanel(user: string): object;
export declare function removeStoredLegacyComponentPanel(user: string): void;
export declare function setStoredShowToolsPanel(siteIdentifier: string, user: string, value: boolean): void;
export declare function getStoredShowToolsPanel(siteIdentifier: string, user: string): boolean;
export declare function removeStoredShowToolsPanel(siteIdentifier: string, user: string): void;
export declare function setStoredPreviewToolsPanelWidth(siteIdentifier: string, user: string, value: number): void;
export declare function getStoredPreviewToolsPanelWidth(siteIdentifier: string, user: string): number;
export declare function removeStoredPreviewToolsPanelWidth(siteIdentifier: string, user: string): void;
export declare function setStoredICEToolsPanelWidth(siteIdentifier: string, user: string, value: number): void;
export declare function getStoredICEToolsPanelWidth(siteIdentifier: string, user: string): number;
export declare function removeStoredICEToolsPanelWidth(siteIdentifier: string, user: string): void;
export declare function setStoredICEToolsPanelPage(siteIdentifier: string, user: string, value: WidgetDescriptor): void;
export declare function getStoredICEToolsPanelPage(siteIdentifier: string, user: string): WidgetDescriptor;
export declare function removeStoredICEToolsPanelPage(siteIdentifier: string, user: string): void;
export declare function commonDialogProps<T>(specificProps: T): EnhancedDialogState & T;
export declare function setStoredSaveButtonSubAction(user: string, id: string, value: string): void;
export declare function getStoredSaveButtonSubAction(user: string, id: string): string;
export declare function removeStoredSaveButtonSubAction(user: string, id: string): void;
export declare function setStoredPushBranch(siteId: string, username: string, branchName: string): void;
export declare function getStoredPushBranch(siteId: string, username: string): string;
export declare function removeStoredPushBranch(siteId: string, username: string): void;
export declare function setStoredPullBranch(siteId: string, username: string, branchName: string): void;
export declare function getStoredPullBranch(siteId: string, username: string): string;
export declare function removeStoredPullBranch(siteId: string, username: string): void;
export declare function setStoredPullMergeStrategy(siteId: string, username: string, mergeStrategy: string): void;
export declare function getStoredPullMergeStrategy(siteId: string, username: string): string;
export declare function removeStoredPullMergeStrategy(siteId: string, username: string): void;
export declare function setStoredPreviewBackgroundMode(username: string, mode: number): void;
export declare function getStoredPreviewBackgroundMode(username: string): number;
export declare function removeStoredPreviewBackgroundMode(username: string): void;
export declare function setStoredBrowseDialogViewMode(username: string, mode: MediaCardViewModes): void;
export declare function getStoredBrowseDialogViewMode(username: string): MediaCardViewModes;
export declare function removeStoredBrowseDialogViewMode(username: string): void;
export declare function getStoredOutdatedXBValidationDate(siteId: string, username: string): Date;
export declare function setStoredOutdatedXBValidationDate(siteId: string, username: string, date: Date): void;
export declare function removeStoredOutdatedXBValidationDate(siteId: string, username: string): void;
export declare function getDashletFilterSystemTypeGroups(
  siteIdentifier: string,
  storageKey: string
): FilterSystemTypeGroups[];
export declare function setDashletFilterSystemTypeGroups(
  siteIdentifier: string,
  storageKey: string,
  typeGroups: FilterSystemTypeGroups[]
): void;
export declare function removeDashletFilterSystemTypeGroups(siteIdentifier: string, storageKey: string): void;
export declare function removeStoredItems(match: (key: string) => boolean): void;
export interface StoredWidgetsAccordion {
  open: boolean;
}
export declare function getStoredWidgetsAccordion(
  siteIdentifier: string,
  user: string,
  id: string
): StoredWidgetsAccordion;
export declare function setStoredWidgetsAccordion(
  siteIdentifier: string,
  user: string,
  id: string,
  value: StoredWidgetsAccordion
): void;
export declare function removeStoredWidgetsAccordion(siteIdentifier: string, user: string, id: string): void;
