import type * as OpenFin from '../../../../OpenFin'; import { ViewOverlay } from '../utils/view-overlay'; type View = OpenFin.View; /** * Set of apis used to facilitate tab drag interactions without needing to hide views. * @ignore */ export declare class TabDragController { private readonly viewOverlay; constructor(viewOverlay: ViewOverlay); private dropZonePreview?; /** * * When a tab is dragged out of a stack, it will need to be hidden from the stack. * * Additionally, if there is a new view to show in the stack, it will be shown at the position specified by * containerBounds * * As drag interactions can under extreme circumstances complete before this chain of promises has completed, * we need to pass in a isDragging() function which returns whether the drag is in progress. * This allows us to cancel any layout affecting operations. * * @param draggingView The view which is currently being dragged * @param isLastViewInWindow Whether the draggin view is the last view in a window or not. If false, the dragging view will not hide. * @param isDragging A function which returns true if the drag is still in progress. As we chain some async calls here, we want to avoid * modifying any views if the drag has completed (as the post drag procedure will have taken care of it.) * @param containerBounds The bounds of the container of the view to be shown in the stack * @param nextView The view which has become active after dragging the draggingView out. */ handleTabStackActiveView: (draggingView: View, isLastViewInWindow: boolean, isDragging: () => boolean, containerBounds?: OpenFin.Bounds, nextView?: View) => Promise; /** * Extracts the border and backgroundColor css values from the drop zone preview, * and sets the viewOverlay to match them. */ inheritStyles: () => Promise; /** * Called when a tab drag interaction is started from the current window (not when it enters the window). * * Sets all views in the platform to ignore mouse events so that they can pass through to the golden-layout * document whilst remaining visible. */ startDrag: () => Promise; /** * Called when a tab drag interaction which was started from the current window ends. * * Disables the click through setting on every view in the platform. */ endDrag: () => Promise; private disposeObserve?; disposeOverlayObserver: () => void; /** * Observes a golden-layout drop zone preview in order to render a BrowserView * overlay whenever a tab is dragged over a droppable region. * @param dropZonePreview The drop zone preview element created by Golden Layout in order to highlight * droppable regions of the UI. */ observeOverlay: (dropZonePreview: HTMLElement) => Promise; } export {};