import { IDisposable } from '../lifecycle';
import { DockviewGroupPanel } from './dockviewGroupPanel';
import { EdgeGroupPosition } from './dockviewShell';
/**
 * EdgeGroupService is a pure registry: it tracks which positions are
 * occupied and owns each edge group's per-instance cleanup disposable.
 *
 * The ShellManager (layout infrastructure) and the addEdgeGroup
 * orchestration remain on DockviewComponent.
 */
export interface IEdgeGroupServiceHost {
}
export interface IEdgeGroupService extends IDisposable {
    add(position: EdgeGroupPosition, group: DockviewGroupPanel, autoCollapseDisposable: IDisposable): void;
    remove(position: EdgeGroupPosition): void;
    get(position: EdgeGroupPosition): DockviewGroupPanel | undefined;
    has(position: EdgeGroupPosition): boolean;
    hasAny(): boolean;
    entries(): IterableIterator<[EdgeGroupPosition, DockviewGroupPanel]>;
    includes(group: DockviewGroupPanel): boolean;
    findPositionOf(group: DockviewGroupPanel): EdgeGroupPosition | undefined;
    disposeAll(): void;
}
export declare class EdgeGroupService implements IEdgeGroupService {
    private readonly _edgeGroups;
    private readonly _edgeGroupDisposables;
    add(position: EdgeGroupPosition, group: DockviewGroupPanel, autoCollapseDisposable: IDisposable): void;
    remove(position: EdgeGroupPosition): void;
    get(position: EdgeGroupPosition): DockviewGroupPanel | undefined;
    has(position: EdgeGroupPosition): boolean;
    hasAny(): boolean;
    entries(): IterableIterator<[EdgeGroupPosition, DockviewGroupPanel]>;
    includes(group: DockviewGroupPanel): boolean;
    findPositionOf(group: DockviewGroupPanel): EdgeGroupPosition | undefined;
    disposeAll(): void;
    dispose(): void;
}
export declare const EdgeGroupModule: import("./modules").DockviewModule<IEdgeGroupServiceHost>;
