import type { UniComponent } from '@blocksuite/affine-shared/types'; import type { SingleView } from '../view-manager/single-view.js'; import type { ViewManager } from '../view-manager/view-manager.js'; import type { DataViewUILogicBaseConstructor } from './data-view-base.js'; import type { DataViewInstance, DataViewProps } from './types.js'; export type BasicViewDataType> = { id: string; name: string; mode: Type; } & T; export type DefaultViewDataType = BasicViewDataType & { mode: string; }; export type DataViewDataType = DefaultViewDataType; export type DataViewMode = string; export interface DataViewModelConfig { defaultName: string; dataViewManager: new (viewManager: ViewManager, viewId: string) => SingleView; defaultData: (viewManager: ViewManager) => Omit; } export type DataViewModel = { type: Type; model: DataViewModelConfig; }; export type GetDataFromDataViewModel = Model extends DataViewModel ? R : never; type DataViewComponent = UniComponent<{ props: DataViewProps; }, DataViewInstance>; export interface DataViewRendererConfig { mobileView?: DataViewComponent; icon: UniComponent; pcLogic: (view: SingleView) => DataViewUILogicBaseConstructor; mobileLogic?: (view: SingleView) => DataViewUILogicBaseConstructor; } export type ViewMeta = DataViewModel & { renderer: DataViewRendererConfig; }; export declare const viewType: (type: Type) => { type: Type; createModel: (model: DataViewModelConfig) => DataViewModel & { createMeta: (renderer: DataViewRendererConfig) => ViewMeta; }; }; export {}; //# sourceMappingURL=data-view.d.ts.map