import type { InsertToPosition } from '@blocksuite/affine-shared/utils'; import type { GeneralServiceIdentifier } from '@blocksuite/global/di'; import { type ReadonlySignal } from '@preact/signals-core'; import type { Variable } from '../expression/types.js'; import type { PropertyMetaConfig } from '../property/property-config.js'; import type { TraitKey } from '../traits/key.js'; import type { DatabaseFlags } from '../types.js'; import type { DataViewDataType, ViewMeta } from '../view/data-view.js'; import { type Cell } from './cell.js'; import type { Property } from './property.js'; import { type Row } from './row.js'; import type { ViewManager } from './view-manager.js'; export type MainProperties = { titleColumn?: string; iconColumn?: string; imageColumn?: string; }; export interface SingleView { readonly id: string; readonly type: string; readonly manager: ViewManager; readonly meta: ViewMeta; readonly readonly$: ReadonlySignal; delete(): void; duplicate(): void; readonly name$: ReadonlySignal; nameSet(name: string): void; readonly propertiesRaw$: ReadonlySignal; readonly propertyMap$: ReadonlySignal>; readonly properties$: ReadonlySignal; readonly propertyIds$: ReadonlySignal; readonly detailProperties$: ReadonlySignal; readonly rowsRaw$: ReadonlySignal; readonly rows$: ReadonlySignal; readonly rowIds$: ReadonlySignal; readonly vars$: ReadonlySignal; readonly featureFlags$: ReadonlySignal; propertyGetOrCreate(propertyId: string): Property; rowGetOrCreate(rowId: string): Row; cellGetOrCreate(rowId: string, propertyId: string): Cell; rowAdd(insertPosition: InsertToPosition): string; rowsDelete(rows: string[]): void; readonly propertyMetas$: ReadonlySignal; propertyAdd(toAfterOfProperty: InsertToPosition, ops?: { type?: string; name?: string; }): string | undefined; serviceGet(key: GeneralServiceIdentifier): T | null; serviceGetOrCreate(key: GeneralServiceIdentifier, create: () => T): T; traitGet(key: TraitKey): T | undefined; mainProperties$: ReadonlySignal; lockRows(lock: boolean): void; isLocked$: ReadonlySignal; } export declare abstract class SingleViewBase implements SingleView { manager: ViewManager; id: string; private readonly searchString; private readonly traitMap; data$: ReadonlySignal; abstract detailProperties$: ReadonlySignal; protected lockRows$: import("@preact/signals-core").Signal; isLocked$: ReadonlySignal; abstract mainProperties$: ReadonlySignal; name$: ReadonlySignal; propertyIds$: ReadonlySignal; propertyMap$: ReadonlySignal>; abstract properties$: ReadonlySignal; abstract propertiesRaw$: ReadonlySignal; abstract readonly$: ReadonlySignal; rowsRaw$: ReadonlySignal; rows$: ReadonlySignal; rowsDelete(rows: string[]): void; rowIds$: ReadonlySignal; vars$: ReadonlySignal<{ id: string; name: string; type: import("../index.js").TypeInstance; icon: import("@blocksuite/affine-shared/types").UniComponent | undefined; propertyType: string; }[]>; protected get dataSource(): import("../index.js").DataSource; get featureFlags$(): ReadonlySignal; get isLocked(): boolean; get meta(): ViewMeta; get propertyMetas$(): ReadonlySignal; abstract get type(): string; constructor(manager: ViewManager, id: string); private searchRowsMapping; cellGetOrCreate(rowId: string, propertyId: string): Cell; serviceGet(key: GeneralServiceIdentifier): T | null; serviceGetOrCreate(key: GeneralServiceIdentifier, create: () => T): T; dataUpdate(updater: (viewData: ViewData) => Partial): void; delete(): void; duplicate(): void; abstract isShow(rowId: string): boolean; lockRows(lock: boolean): void; nameSet(name: string): void; propertyAdd(position: InsertToPosition, ops?: { type?: string; name?: string; }): string | undefined; abstract propertyGetOrCreate(propertyId: string): Property; rowAdd(insertPosition: InsertToPosition | number): string; rowGetOrCreate(rowId: string): Row; protected rowsMapping(rows: Row[]): Row[]; setSearch(str: string): void; traitGet(key: TraitKey): T | undefined; protected traitSet(key: TraitKey, value: T): T; } //# sourceMappingURL=single-view.d.ts.map