import { DockviewApi } from '../api/component.api'; import { DockviewGroupPanelApi } from '../api/dockviewGroupPanelApi'; import { DockviewPanelApi } from '../api/dockviewPanelApi'; import { PanelParameters } from '../framwork'; import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel'; import { DockviewGroupLocation } from './dockviewGroupPanelModel'; import { IDockviewPanel } from './dockviewPanel'; import { DockviewHeaderPosition } from './options'; import { ITabGroup } from './tabGroup'; export interface IGroupPanelBaseProps extends PanelParameters { api: DockviewPanelApi; containerApi: DockviewApi; } export type TabLocation = 'header' | 'headerOverflow'; export type IDockviewPanelHeaderProps = IGroupPanelBaseProps & { tabLocation: TabLocation; }; export type IDockviewPanelProps = IGroupPanelBaseProps; export interface IDockviewHeaderActionsProps { api: DockviewGroupPanelApi; containerApi: DockviewApi; panels: IDockviewPanel[]; activePanel: IDockviewPanel | undefined; isGroupActive: boolean; group: DockviewGroupPanel; headerPosition: DockviewHeaderPosition; location?: DockviewGroupLocation; } export interface IGroupHeaderProps { api: DockviewGroupPanelApi; containerApi: DockviewApi; group: IDockviewGroupPanel; } export interface IWatermarkPanelProps { containerApi: DockviewApi; group?: IDockviewGroupPanel; } export interface DockviewReadyEvent { api: DockviewApi; } export interface ITabGroupChipRenderer { readonly element: HTMLElement; init(params: { tabGroup: ITabGroup; api: DockviewApi; }): void; update?(params: { tabGroup: ITabGroup; }): void; dispose(): void; } export interface IGroupDragGhostRenderer { readonly element: HTMLElement; init(params: { group: IDockviewGroupPanel; api: DockviewApi; }): void; dispose?(): void; }