import { LitElement, nothing, TemplateResult } from 'lit';
import { SplitItem } from './SplitItem.js';
import { SplitPanel } from './SplitPanel.js';
import { SplitDirection, SplitRegion } from './type.js';
export default class SplitView extends LitElement {
    /**
     * @attribute
     */
    accessor layout: SplitDirection;
    /**
     * @attribute
     */
    accessor key: string | undefined;
    accessor dragTypes: string[] | undefined;
    /**
     * Whether dragging is occurring over the element
     */
    protected accessor inDrag: boolean;
    /**
     * The region the drag is leaning to.
     */
    protected accessor dragRegion: SplitRegion;
    /**
     * A reference to the split panel that owns this view.
     */
    accessor panel: SplitPanel | undefined;
    /**
     * When set it adds the `overflow` hidden on the container that holds the tab contents.
     * @attribute
     */
    accessor constrain: boolean;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    protected handleDragEnter(e: DragEvent): void;
    protected handleDragOver(e: DragEvent): void;
    protected handleDrop(e: DragEvent): void;
    protected handleDragleave(e: DragEvent): void;
    protected handleDragEnd(): void;
    protected getDropRegionFromEvent(e: DragEvent): SplitRegion | undefined;
    getDropRegion(element: HTMLElement, e: DragEvent): SplitRegion | undefined;
    protected findLayout(e: Event): SplitView | undefined;
    protected hasDropTypes(dt: DataTransfer): boolean;
    protected panelCanDrop(e: DragEvent): boolean;
    protected handleTabDragStart(e: DragEvent): void;
    protected handleTabsDragEnter(e: DragEvent): void;
    protected handleTabsDragover(e: DragEvent): void;
    protected handleTabDrop(e: DragEvent): void;
    protected moveTab(fromLayout: string, toLayout: string, key: string, toIndex?: number): void;
    protected findTab(e: Event): HTMLElement | undefined;
    protected handleTabClick(e: Event): Promise<void>;
    /**
     * Closes a panel with right pointer configuration
     */
    protected handleTabPointerDown(e: PointerEvent): void;
    protected handleTabClose(e: Event): void;
    protected handleTabTouchStart(e: TouchEvent): void;
    protected closeTab(key: string): void;
    protected handleTabKeyDown(e: KeyboardEvent): void;
    render(): TemplateResult;
    protected dragRegionTemplate(): TemplateResult | typeof nothing;
    protected tabsTemplate(): TemplateResult | string;
    protected tabTemplate(item: SplitItem, last: boolean, nextKey?: string): TemplateResult;
}
//# sourceMappingURL=SplitView.d.ts.map