import type { ToolSlot, GroupStatus, GroupActivationResult } from '../../types/index.js';
export declare class GroupManager {
    private readonly groups;
    private readonly enabledState;
    private readonly toolMap;
    private readonly notifyChanged;
    constructor(toolMap: Map<string, ToolSlot>, notifyChanged: () => void);
    /** Load groups from config, restore persisted state, apply to toolMap. */
    init(): Promise<void>;
    /** Enable all tools in a group. */
    enableGroup(groupId: string): GroupActivationResult;
    /** Disable all tools in a group. */
    disableGroup(groupId: string): GroupActivationResult;
    /** Toggle a group based on its current state. */
    toggleGroup(groupId: string): GroupActivationResult;
    /** Return runtime status for all groups, including a virtual 'ungrouped' group. */
    getGroupStatus(): GroupStatus[];
    /** Return the group ID that contains the given tool, or undefined. */
    getToolGroup(toolName: string): string | undefined;
    /** Count of tools currently enabled in toolMap. */
    getActiveToolCount(): number;
    /** Total tools registered in toolMap. */
    getTotalToolCount(): number;
    /** Load persisted group states from disk. */
    private loadPersistedState;
    /** Write current group states to disk. */
    private persistState;
    /** Apply enabled/disabled state to all tools in a group via toolMap. */
    private applyGroupState;
    /** Build a successful GroupActivationResult for a given group and action. */
    private buildActivationResult;
    /** Build a failed GroupActivationResult (group not found or locked). */
    private buildErrorResult;
}
//# sourceMappingURL=group-manager.d.ts.map