import type { BlockStdScope } from '@blockeditor/block-std';
import { type BlockSnapshot } from '@blockeditor/store';
import type { EdgelessElement, Selectable, TopLevelBlockModel } from '../../../_common/types.js';
import { type BookmarkBlockModel } from '../../../bookmark-block/bookmark-model.js';
import type { FrameBlockModel } from '../../../frame-block/frame-model.js';
import type { ImageBlockModel } from '../../../image-block/image-model.js';
import type { NoteBlockModel } from '../../../note-block/note-model.js';
import { type CanvasElement } from '../../../surface-block/elements/index.js';
import type { SurfaceBlockComponent } from '../../../surface-block/surface-block.js';
import { type IVec } from '../../../surface-block/utils/vec.js';
import { PageClipboard } from '../../clipboard/index.js';
import type { EdgelessPageBlockComponent } from '../edgeless-page-block.js';
export declare class EdgelessClipboardController extends PageClipboard {
    host: EdgelessPageBlockComponent;
    constructor(host: EdgelessPageBlockComponent);
    private get std();
    private get page();
    private get surface();
    private get toolManager();
    private get selectionManager();
    private get _pageService();
    hostConnected(): void;
    private _initEdgelessClipboard;
    private _onCopy;
    private _onPaste;
    private _onCut;
    private _createCanvasElement;
    private _createCanvasElements;
    private _createNoteBlocks;
    private _createFrameBlocks;
    private _createImageBlocks;
    private _createBookmarkBlocks;
    private _createGithubEmbedBlocks;
    private _createYoutubeEmbedBlocks;
    private _createFigmaEmbedBlocks;
    private _createLinkedDocEmbedBlocks;
    private _emitSelectionChangeAfterPaste;
    createElementsFromClipboardData(elementsRawData: Record<string, unknown>[], pasteCenter?: IVec): Promise<readonly [CanvasElement[], (NoteBlockModel | FrameBlockModel | BookmarkBlockModel | ImageBlockModel)[]]>;
    private _pasteShapesAndBlocks;
    toCanvas(blocks: TopLevelBlockModel[], shapes: CanvasElement[]): Promise<HTMLCanvasElement | undefined>;
    copyAsPng(blocks: TopLevelBlockModel[], shapes: CanvasElement[]): Promise<void>;
    private _replaceRichTextWithSvgElement;
    private _elementToSvgElement;
    private _edgelessToCanvas;
    private _checkCanContinueToCanvas;
}
export declare function getCopyElements(surface: SurfaceBlockComponent, elements: EdgelessElement[]): EdgelessElement[];
export declare function prepareClipboardData(selectedAll: Selectable[], std: BlockStdScope): Promise<(import("../../../surface-block/elements/surface-element.js").ISurfaceElement | {
    type: "block";
    id: string;
    flavour: string;
    props: Record<string, unknown>;
    children: BlockSnapshot[];
})[]>;
//# sourceMappingURL=clipboard.d.ts.map