import './table/define.js';
import './table/renderer.js';
import './kanban/define.js';
import './kanban/renderer.js';
import type { BlockStdScope } from '@blockeditor/block-std';
import { Slot } from '@blockeditor/global/utils';
import { ShadowlessElement } from '@blockeditor/lit';
import type { DataViewSelection } from '../_common/utils/index.js';
import type { DataViewExpose, DataViewProps } from './common/data-view.js';
import type { DataSource } from './common/datasource/base.js';
import type { ViewSource } from './common/view-source.js';
export type DataViewNativeConfig = {
    bindHotkey: DataViewProps['bindHotkey'];
    handleEvent: DataViewProps['handleEvent'];
    getFlag?: DataViewProps['getFlag'];
    selectionUpdated: Slot<DataViewSelection | undefined>;
    setSelection: (selection: DataViewSelection | undefined) => void;
    dataSource: DataSource;
    viewSource: ViewSource;
    headerComponent: DataViewProps['header'];
    onDrag?: DataViewProps['onDrag'];
    std: BlockStdScope;
};
declare const DataViewNative_base: typeof ShadowlessElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare class DataViewNative extends DataViewNative_base {
    static styles: import("lit").CSSResult;
    config: DataViewNativeConfig;
    get expose(): DataViewExpose | undefined;
    connectedCallback(): void;
    currentView?: string;
    private _view;
    private viewMap;
    focusFirstCell: () => void;
    private getView;
    private renderView;
    render(): import("lit").TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'affine-data-view-native': DataViewNative;
    }
}
export {};
//# sourceMappingURL=data-view.d.ts.map