import type { BlockStdScope, EventName, UIEventHandler } from '@blockeditor/block-std';
import type { Disposable, Slot } from '@blockeditor/global/utils';
import { ShadowlessElement } from '@blockeditor/lit';
import type { Page } from '@blockeditor/store';
import type { UniComponent } from '../../_common/components/uni-component/uni-component.js';
import type { DataViewSelection } from '../../_common/utils/index.js';
import type { InsertToPosition } from '../types.js';
import type { DataViewExpose, DataViewProps } from './data-view.js';
import type { DataViewManager } from './data-view-manager.js';
declare const BaseDataView_base: typeof ShadowlessElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare abstract class BaseDataView<T extends DataViewManager = DataViewManager, Selection extends DataViewSelection = DataViewSelection> extends BaseDataView_base implements DataViewProps<T, Selection>, DataViewExpose {
    std: BlockStdScope;
    header: UniComponent<{
        viewMethods: DataViewExpose;
        view: T;
    }>;
    view: T;
    bindHotkey: (hotkeys: Record<string, UIEventHandler>) => Disposable;
    handleEvent: (name: EventName, handler: UIEventHandler) => Disposable;
    modalMode?: boolean;
    setSelection: (selection?: Selection) => void;
    selectionUpdated: Slot<Selection | undefined>;
    onDrag?: (evt: MouseEvent, id: string) => () => void;
    getFlag: Page['awarenessStore']['getFlag'];
    addRow?(position: InsertToPosition): void;
    abstract focusFirstCell(): void;
    abstract getSelection(): Selection | undefined;
}
export {};
//# sourceMappingURL=base-data-view.d.ts.map