import './surface-ref-portal';
import { BlockElement } from '@blockeditor/lit';
import { nothing, type TemplateResult } from 'lit';
import type { EdgelessElement } from '../_common/types.js';
import type { NoteBlockModel } from '../models.js';
import type { Renderer } from '../surface-block/renderer.js';
import type { SurfaceRefBlockModel } from './surface-ref-model.js';
import { SurfaceRefPortal } from './surface-ref-portal.js';
import type { SurfaceRefBlockService } from './surface-ref-service.js';
type RefElement = Exclude<EdgelessElement, NoteBlockModel>;
export declare class SurfaceRefBlockComponent extends BlockElement<SurfaceRefBlockModel, SurfaceRefBlockService> {
    static styles: import("lit").CSSResult;
    private _surfaceModel;
    private _focused;
    private _caption;
    private _showCaption;
    private _surfaceRefRenderer;
    private _referencedModel;
    container: HTMLDivElement;
    blocksPortal: SurfaceRefPortal;
    get surfaceRenderer(): Renderer;
    get referenceModel(): RefElement | null;
    connectedCallback(): void;
    disconnectedCallback(): void;
    updated(): void;
    private _attachRenderer;
    private _initHotkey;
    private _initReferencedModel;
    private _initSelection;
    private _refreshViewport;
    private _deleteThis;
    private _focusBlock;
    private _renderMask;
    private _renderEmptyPlaceholder;
    private _renderSurfaceContent;
    private _updateCaption;
    private _onCaptionKeydown;
    private _onCaptionBlur;
    private _renderCaption;
    showCaption(): void;
    viewInEdgeless(): void;
    private _shouldRender;
    render(): typeof nothing | TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'affine-surface-ref': SurfaceRefBlockComponent;
    }
}
export {};
//# sourceMappingURL=surface-ref-block.d.ts.map