import React from 'react'; import { ToolbarItemProps } from 'components/common/toolbar-item'; import { UiState } from 'reducers'; import { BaseProps } from 'components/common/icons/base'; type ActionItem = { id: string; label?: string; blank?: boolean; href?: string; tooltip?: string; iconComponent: React.ComponentType>; iconComponentProps?: BaseProps; dropdownComponent?: React.ComponentType; onClick?: (p: PanelHeaderProps) => void; }; type PanelActionProps = { item: ActionItem; onClick: () => void; }; type PanelHeaderDropdownProps = { id: string; items: ToolbarItemProps[]; show?: boolean; onClose: () => void; }; type DropdownCallbacks = { logoComponent?: React.ComponentType<{ appName: string; appWebsite: string; version: string; }>; onExportImage: () => void; onExportData: () => void; onExportConfig?: () => void; onExportMap: () => void; onSaveToStorage: (() => void) | null; onSaveAsToStorage: (() => void) | null; onSaveMap?: () => void; onShareMap: (() => void) | null; }; type Item = { label: string; icon: React.ComponentType>; key: string; onClick: (p: DropdownComponentProps) => (() => void) | null; }; type DropdownComponentProps = { show: boolean; onClose: () => void; items?: Item[]; } & DropdownCallbacks; type PanelHeaderProps = { appName: string; appWebsite: string; version: string; visibleDropdown: UiState['visibleDropdown']; actionItems?: ActionItem[]; showExportDropdown: (i: string) => void; hideExportDropdown: () => void; } & DropdownCallbacks; export declare const PanelAction: React.FC; export declare const PanelHeaderDropdownFactory: () => React.FC; export declare const SaveExportDropdownFactory: { (PanelHeaderDropdown: ReturnType): React.FC; deps: (() => React.FC)[]; }; export declare const CloudStorageDropdownFactory: { (PanelHeaderDropdown: ReturnType): React.FC; deps: (() => React.FC)[]; }; declare function PanelHeaderFactory(SaveExportDropdown: ReturnType, CloudStorageDropdown: ReturnType): React.ComponentType; declare namespace PanelHeaderFactory { var deps: { (PanelHeaderDropdown: React.FC): React.FC; deps: (() => React.FC)[]; }[]; } export default PanelHeaderFactory;