import type { BlockModel } from '@blockeditor/store';
import { type Page } from '@blockeditor/store';
import type { EmbedBlockModel } from '../../../_common/embed-block-helper/embed-block-model.js';
import { type Connectable, type EdgelessElement, type EdgelessTool, type Selectable, type TopLevelBlockModel } from '../../../_common/utils/index.js';
import type { BookmarkBlockModel } from '../../../bookmark-block/bookmark-model.js';
import type { EmbedFigmaModel } from '../../../embed-figma-block/embed-figma-model.js';
import type { EmbedGithubModel } from '../../../embed-github-block/index.js';
import type { EmbedLinkedDocModel } from '../../../embed-linked-doc-block/embed-linked-doc-model.js';
import type { EmbedYoutubeModel } from '../../../embed-youtube-block/embed-youtube-model.js';
import type { FrameBlockModel } from '../../../frame-block/index.js';
import type { ImageBlockModel } from '../../../image-block/index.js';
import type { NoteBlockModel } from '../../../note-block/index.js';
import { Bound, type CanvasElement, type CanvasElementWithText, type SurfaceViewport } from '../../../surface-block/index.js';
import type { SurfaceBlockComponent } from '../../../surface-block/surface-block.js';
export declare function isTopLevelBlock(selectable: BlockModel | Selectable | BlockModel | null): selectable is TopLevelBlockModel;
export declare function isNoteBlock(element: BlockModel | EdgelessElement | null): element is NoteBlockModel;
export declare function isFrameBlock(element: BlockModel | EdgelessElement | null): element is FrameBlockModel;
export declare function isImageBlock(element: BlockModel | EdgelessElement | null): element is ImageBlockModel;
export declare function isBookmarkBlock(element: BlockModel | EdgelessElement | null): element is BookmarkBlockModel;
export declare function isEmbeddedBlock(element: BlockModel | EdgelessElement | null): element is EmbedBlockModel;
export declare function isEmbedGithubBlock(element: BlockModel | EdgelessElement | null): element is EmbedGithubModel;
export declare function isEmbedYoutubeBlock(element: BlockModel | EdgelessElement | null): element is EmbedYoutubeModel;
export declare function isEmbedFigmaBlock(element: BlockModel | EdgelessElement | null): element is EmbedFigmaModel;
export declare function isEmbedLinkedDocBlock(element: BlockModel | EdgelessElement | null): element is EmbedLinkedDocModel;
export declare function isCanvasElement(selectable: Selectable | null): selectable is CanvasElement;
export declare function isCanvasElementWithText(element: Selectable): element is CanvasElementWithText;
export declare function isConnectable(element: EdgelessElement | null): element is Connectable;
export declare function getSelectionBoxBound(viewport: SurfaceViewport, bound: Bound): DOMRect;
export declare function getCursorMode(edgelessTool: EdgelessTool): "text" | "default" | "grabbing" | "grab" | "crosshair";
export declare function pickSurfaceElementById(surface: SurfaceBlockComponent, page: Page, id: string): BookmarkBlockModel | EmbedFigmaModel | NoteBlockModel | FrameBlockModel | ImageBlockModel | EmbedGithubModel | EmbedYoutubeModel | EmbedLinkedDocModel | import("../../../surface-block/elements/surface-element.js").SurfaceElement<import("../../../surface-block/elements/surface-element.js").ISurfaceElement> | undefined;
export declare function getBackgroundGrid(zoom: number, showGrid: boolean): {
    gap: number;
    grid: string;
};
export declare function getSelectedRect(selected: Selectable[]): DOMRect;
export declare function getSelectableBounds(selected: Selectable[]): Map<string, {
    bound: Bound;
    rotate: number;
}>;
//# sourceMappingURL=query.d.ts.map