import type { BlockStdScope } from '@blockeditor/block-std';
import { DisposableGroup, Slot } from '@blockeditor/global/utils';
import type { Page } from '@blockeditor/store';
import type { EdgelessElement } from '../_common/types.js';
import type { NoteBlockModel } from '../note-block/index.js';
import { ConnectorPathGenerator } from '../page-block/edgeless/connector-manager.js';
import type { SurfaceElement } from '../surface-block/elements/surface-element.js';
import { Renderer } from '../surface-block/index.js';
import type { SurfaceBlockModel } from '../surface-block/surface-model.js';
type RefElement = Exclude<EdgelessElement, NoteBlockModel>;
export declare class SurfaceRefRenderer {
    readonly id: string;
    readonly page: Page;
    readonly std: BlockStdScope;
    private readonly _surfaceRenderer;
    private readonly _connectorManager;
    private readonly _elements;
    private _surfaceModel;
    protected _disposables: DisposableGroup;
    slots: {
        surfaceRendererInit: Slot<void>;
        surfaceRendererRefresh: Slot<void>;
        surfaceModelChanged: Slot<SurfaceBlockModel>;
        mounted: Slot<void>;
        unmounted: Slot<void>;
    };
    get surfaceRenderer(): Renderer;
    get elements(): Map<string, SurfaceElement<import("../surface-block/elements/surface-element.js").ISurfaceElement>>;
    get connectorManager(): ConnectorPathGenerator;
    constructor(id: string, page: Page, std: BlockStdScope);
    mount(): void;
    unmount(): void;
    getModel(id: string): RefElement | null;
    private _initSurfaceRenderer;
    private _initSurfaceModel;
    private _onElementsChange;
    private _onYEvent;
    private _getCSSPropertyValue;
    private _syncFromExistingContainer;
    private _createElementFromYMap;
    private _onElementUpdatedOrAdded;
}
export {};
//# sourceMappingURL=surface-ref-renderer.d.ts.map