import * as H from 'history'; import * as React from 'react'; import { Unsubscribable } from 'rxjs'; import { Tab } from '../components/Tabs'; /** * A tab and corresponding content to display in the panel. */ export interface PanelItem extends Tab { /** * Controls the relative order of panel items. The items are laid out from highest priority (at the beginning) * to lowest priority (at the end). The default is 0. */ priority: number; /** The content element to display when the tab is active. */ element: React.ReactElement; } interface Props { isLightTheme: boolean; location: H.Location; history: H.History; } interface State { /** Panel title. */ title?: React.ReactFragment; /** Panel items to display. */ items: PanelItem[]; } /** * The panel, which is a tabbed component with contextual information. Components rendering the panel should * generally use ResizablePanel, not Panel. * * Other components can contribute panel items to the panel. */ export declare class Panel extends React.PureComponent { private static forceUpdates; private static newItems; private static newTitles; private static itemsToRemove; private static titlesToRemove; private subscriptions; state: State; /** * Set the panel title. Do not call directly; use PanelTitlePortal instead. * @param fragment to set as the panel title */ static setTitle(fragment: React.ReactFragment | undefined): Unsubscribable; /** * Add an item to the panel. Do not call directly; use PanelItemPortal instead. * @param item to add to the header */ static addItem(item: PanelItem): Unsubscribable; /** * Forces an update of items in the panel. Do not call directly; use PanelItemPortal instead. */ static forceUpdate(): void; componentDidMount(): void; componentWillUnmount(): void; render(): JSX.Element | null; private onSelectTab; private onDismiss; } /** A wrapper around Panel that makes it resizable. */ export declare const ResizablePanel: React.SFC; export {}; //# sourceMappingURL=Panel.d.ts.map