import type { EdgelessElement } from '../../_common/utils/index.js';
import { GroupElement } from '../elements/group/group-element.js';
import type { SurfaceBlockComponent } from '../surface-block.js';
export declare const GroupMap: Map<string, GroupElement>;
export declare function getGroupParent(element: string | EdgelessElement): GroupElement;
export declare function setGroupParent(id: string, group: GroupElement): void;
export declare function getGroups(element: EdgelessElement): {
    group: GroupElement;
    child: EdgelessElement;
}[];
export declare function compare(a: EdgelessElement, b: EdgelessElement): 0 | 1 | -1;
export declare function isDescendant(element: EdgelessElement, parent: GroupElement): boolean;
export declare function getElementsFromGroup(group: GroupElement): EdgelessElement[];
export declare function getElementsWithoutGroup(elements: EdgelessElement[]): EdgelessElement[];
export declare class EdgelessGroupManager {
    private surface;
    constructor(surface: SurfaceBlockComponent);
    addChild(group: GroupElement, id: string): void;
    removeChild(group: GroupElement, id: string): void;
    createGroupOnSelected(): void;
    getRootElement(element: EdgelessElement): EdgelessElement;
    releaseFromGroup(element: EdgelessElement): void;
    ungroup(group: GroupElement): void;
    getRootElements(elements: EdgelessElement[]): EdgelessElement[];
}
//# sourceMappingURL=group-manager.d.ts.map