import { Slot } from '@blockeditor/global/utils'; import type { Y } from '@blockeditor/store'; import { BlockModel, Boxed } from '@blockeditor/store'; import type { ElementModel } from './element-model/base.js'; import type { ConnectorElementModel } from './element-model/connector.js'; import type { GroupElementModel } from './element-model/group.js'; import { type ElementModelMap } from './element-model/index.js'; import { SurfaceBlockTransformer } from './surface-transformer.js'; export type SurfaceBlockProps = { elements: Boxed>>; }; export declare const SurfaceBlockSchema: { version: number; model: { role: "root" | "hub" | "content"; props: import("@blockeditor/store").PropsGetter; flavour: "affine:surface"; } & { version: number; role: "hub"; parent: string[]; children: string[]; }; onUpgrade?: ((data: SurfaceBlockProps, previousVersion: number, latestVersion: number) => void) | undefined; transformer?: (() => SurfaceBlockTransformer) | undefined; }; export declare class SurfaceBlockModel extends BlockModel { private _elementModels; private _disposables; private _groupToElements; private _elementToGroup; private _connectorToElements; private _elementToConnector; elementUpdated: Slot<{ id: string; props: Record; oldValues: Record; }>; elementAdded: Slot<{ id: string; }>; elementRemoved: Slot<{ id: string; type: string; model: ElementModel; }>; get elementModels(): ElementModel[]; constructor(); private _init; private _applyMiddlewares; private _initElementModels; private _watchGroupRelationChange; private _watchConnectorRelationChange; dispose(): void; getConnectors(id: string): ConnectorElementModel[]; getGroup(id: string): GroupElementModel | null; getGroups(id: string): GroupElementModel[]; getElementsByType(type: K): ElementModelMap[K][]; getElementById(id: string): ElementModel | null; addElement>(props: Partial & { type: string; }): string; removeElement(id: string): void; updateElement>(id: string, props: Partial): void; } //# sourceMappingURL=surface-model.d.ts.map