import { BlockModel } from '@blockeditor/store';
import type { FilterGroup } from '../database-block/common/ast.js';
import type { DataSourceConfig } from '../database-block/common/datasource/base.js';
export type DataProperty = {
    id: string;
    width: number;
};
export type DataView = {
    id: string;
    mode: 'table';
    name: string;
    columns: DataProperty[];
    filter: FilterGroup;
    dataSource?: DataSourceConfig;
};
type Props = {
    views: DataView[];
};
export declare class DataViewBlockModel extends BlockModel<Props> {
    constructor();
    addView(mode: DataView['mode']): string;
    deleteView(id: string): void;
    updateView(id: string, update: (data: DataView) => Partial<DataView>): void;
    applyViewsUpdate(): void;
}
export declare const DataViewBlockSchema: {
    version: number;
    model: {
        role: "root" | "hub" | "content";
        props: import("@blockeditor/store").PropsGetter<Props>;
        flavour: "affine:data-view";
    } & {
        role: "hub";
        version: number;
        parent: string[];
        children: string[];
    };
    onUpgrade?: ((data: Props, previousVersion: number, latestVersion: number) => void) | undefined;
    transformer?: (() => import("@blockeditor/store").BaseBlockTransformer<Props>) | undefined;
};
export {};
//# sourceMappingURL=data-view-model.d.ts.map