import type { Page } from '@blockeditor/store';
import type { EdgelessElement, Selectable, TopLevelBlockModel } from '../../_common/types.js';
import type { FrameBlockModel, NoteBlockModel } from '../../models.js';
import type { Renderer } from '../../surface-block/index.js';
import type { EdgelessPageBlockComponent } from './edgeless-page-block.js';
export declare function removeContainedFrames(frames: FrameBlockModel[]): FrameBlockModel[];
export declare class EdgelessFrameManager {
    private _edgeless;
    private _frameOverlay;
    constructor(_edgeless: EdgelessPageBlockComponent);
    get frames(): TopLevelBlockModel[];
    selectFrame(eles: Selectable[]): TopLevelBlockModel | null;
    setHighlight(frame: FrameBlockModel): void;
    clearHighlight(): void;
    getElementsInFrame(frame: FrameBlockModel, fullyContained?: boolean): EdgelessElement[];
    createFrameOnSelected(): void;
}
export declare function getElementsInFrame(page: Page, surfaceRenderer: Renderer, frame: FrameBlockModel): EdgelessElement[];
export declare function getNotesInFrame(page: Page, frame: FrameBlockModel, fullyContained?: boolean): NoteBlockModel[];
export declare function getBlocksInFrame(page: Page, model: FrameBlockModel, fullyContained?: boolean): TopLevelBlockModel[];
//# sourceMappingURL=frame-manager.d.ts.map