import type { Disposable } from '@blockeditor/global/utils';
import { Slot } from '@blockeditor/global/utils';
import type { EditorHost } from '@blockeditor/lit';
import type { InsertToPosition } from '../../types.js';
import type { ColumnConfig } from '../columns/manager.js';
import type { DatabaseBlockDatasourceConfig, DetailSlots } from './base.js';
import { BaseDataSource } from './base.js';
export declare class DatabaseBlockDatasource extends BaseDataSource {
    private host;
    private _model;
    private _batch;
    get page(): import("@blockeditor/store").Page;
    constructor(host: EditorHost, config: DatabaseBlockDatasourceConfig);
    get rows(): string[];
    get properties(): string[];
    slots: {
        update: Slot<void>;
    };
    private _runCapture;
    cellChangeValue(rowId: string, propertyId: string, value: unknown): void;
    cellGetValue(rowId: string, propertyId: string): unknown;
    cellGetExtra(rowId: string, propertyId: string): unknown;
    private getModelById;
    cellGetRenderValue(rowId: string, propertyId: string): unknown;
    private newColumnName;
    propertyAdd(insertToPosition: InsertToPosition, type?: string): string;
    propertyChangeData(propertyId: string, data: Record<string, unknown>): void;
    propertyChangeName(propertyId: string, name: string): void;
    propertyChangeType(propertyId: string, toType: string): void;
    propertyDelete(id: string): void;
    propertyGetData(propertyId: string): Record<string, unknown>;
    propertyGetReadonly(propertyId: string): boolean;
    propertyGetName(propertyId: string): string;
    propertyGetType(propertyId: string): string;
    propertyDuplicate(columnId: string): string;
    rowAdd(insertPosition: InsertToPosition | number): string;
    rowDelete(ids: string[]): void;
    captureSync(): void;
    propertyGetDefaultWidth(propertyId: string): number;
    onCellUpdate(rowId: string, propertyId: string, callback: () => void): Disposable;
    get allPropertyConfig(): ColumnConfig<any, any>[];
    get detailSlots(): DetailSlots;
    rowMove(rowId: string, position: InsertToPosition): void;
}
export declare const hiddenColumn: ColumnConfig<Record<string, never>, string>[];
//# sourceMappingURL=database-block-datasource.d.ts.map