import type { UniComponent } from '@blocksuite/affine-shared/types'; import type { InsertToPosition } from '@blocksuite/affine-shared/utils'; import { type ReadonlySignal } from '@preact/signals-core'; import type { TypeInstance } from '../logical/type.js'; import type { CellRenderer, PropertyMetaConfig } from '../property/index.js'; import type { PropertyDataUpdater } from '../types.js'; import type { Cell } from './cell.js'; import type { SingleView } from './single-view.js'; export interface Property = Record> { readonly id: string; readonly index$: ReadonlySignal; readonly view: SingleView; readonly isFirst$: ReadonlySignal; readonly isLast$: ReadonlySignal; readonly next$: ReadonlySignal; readonly prev$: ReadonlySignal; readonly readonly$: ReadonlySignal; readonly renderer$: ReadonlySignal; readonly cells$: ReadonlySignal; readonly dataType$: ReadonlySignal; readonly meta$: ReadonlySignal; readonly icon?: UniComponent; readonly delete?: () => void; get canDelete(): boolean; readonly duplicate?: () => void; get canDuplicate(): boolean; cellGetOrCreate(rowId: string): Cell; readonly data$: ReadonlySignal; dataUpdate(updater: PropertyDataUpdater): void; readonly type$: ReadonlySignal; readonly typeSet?: (type: string) => void; get typeCanSet(): boolean; readonly name$: ReadonlySignal; nameSet(name: string): void; readonly hide$: ReadonlySignal; hideSet(hide: boolean): void; get hideCanSet(): boolean; valueGet(rowId: string): RawValue | undefined; valueSet(rowId: string, value: RawValue | undefined): void; stringValueGet(rowId: string): string | undefined; valueSetFromString(rowId: string, value: string): void; parseValueFromString(value: string): { value: unknown; data?: Record; } | undefined; move(position: InsertToPosition): void; } export declare abstract class PropertyBase = Record> implements Property { view: SingleView; propertyId: string; meta$: ReadonlySignal; cells$: ReadonlySignal>[]>; data$: ReadonlySignal; dataType$: ReadonlySignal; abstract hide$: ReadonlySignal; name$: ReadonlySignal; readonly$: ReadonlySignal; type$: ReadonlySignal; renderer$: ReadonlySignal | undefined>; get delete(): (() => void) | undefined; get duplicate(): (() => void) | undefined; abstract move(position: InsertToPosition): void; get icon(): UniComponent | undefined; get id(): string; index$: ReadonlySignal; isFirst$: ReadonlySignal; isLast$: ReadonlySignal; next$: ReadonlySignal> | undefined>; prev$: ReadonlySignal> | undefined>; get typeSet(): undefined | ((type: string) => void); constructor(view: SingleView, propertyId: string); protected get dataSource(): import("../index.js").DataSource; get canDelete(): boolean; get canDuplicate(): boolean; get typeCanSet(): boolean; get hideCanSet(): boolean; cellGetOrCreate(rowId: string): Cell; dataUpdate(updater: PropertyDataUpdater): void; abstract hideSet(hide: boolean): void; nameSet(name: string): void; stringValueGet(rowId: string): string | undefined; valueGet(rowId: string): RawValue | undefined; valueSet(rowId: string, value: RawValue | undefined): void; parseValueFromString(value: string): { value: unknown; data?: Record; } | undefined; valueSetFromString(rowId: string, value: string): void; } //# sourceMappingURL=property.d.ts.map