/**
 * MSW handler management system
 */
import type { RequestHandler } from 'msw';
import type { MockHandlerRegistry } from '../types';
/**
 * Handler manager for organizing and managing MSW request handlers
 */
export declare class HandlerManager implements MockHandlerRegistry {
    private handlers;
    private groups;
    /**
     * Register a handler with optional ID and group
     */
    register(handler: RequestHandler, id?: string, group?: string): void;
    /**
     * Unregister a handler by ID or instance
     */
    unregister(handlerOrId: RequestHandler | string): void;
    /**
     * Get all handlers
     */
    getHandlers(): RequestHandler[];
    /**
     * Get handlers by group
     */
    getHandlersByGroup(group: string): RequestHandler[];
    /**
     * Get handler by ID
     */
    getHandler(id: string): RequestHandler | undefined;
    /**
     * Check if handler exists
     */
    hasHandler(handlerOrId: RequestHandler | string): boolean;
    /**
     * Clear all handlers
     */
    clear(): void;
    /**
     * Clear handlers by group
     */
    clearGroup(group: string): void;
    /**
     * Get all groups
     */
    getGroups(): string[];
    /**
     * Get handler count
     */
    getHandlerCount(): number;
    /**
     * Get group handler count
     */
    getGroupHandlerCount(group: string): number;
    /**
     * Register multiple handlers
     */
    registerMany(handlers: RequestHandler[], group?: string): void;
    /**
     * Create a scoped handler manager for a specific group
     */
    createScope(group: string): ScopedHandlerManager;
    /**
     * Generate a unique handler ID
     */
    private generateHandlerId;
    /**
     * Export handlers for MSW setup
     */
    export(): RequestHandler[];
    /**
     * Import handlers from another manager
     */
    import(other: HandlerManager, group?: string): void;
    /**
     * Clone the handler manager
     */
    clone(): HandlerManager;
}
/**
 * Scoped handler manager for working with specific groups
 */
export declare class ScopedHandlerManager {
    private parent;
    private group;
    constructor(parent: HandlerManager, group: string);
    /**
     * Register handler in this scope
     */
    register(handler: RequestHandler, id?: string): void;
    /**
     * Unregister handler from this scope
     */
    unregister(handlerOrId: RequestHandler | string): void;
    /**
     * Get handlers in this scope
     */
    getHandlers(): RequestHandler[];
    /**
     * Clear all handlers in this scope
     */
    clear(): void;
    /**
     * Get handler count in this scope
     */
    getHandlerCount(): number;
    /**
     * Register multiple handlers in this scope
     */
    registerMany(handlers: RequestHandler[]): void;
}
/**
 * Global handler manager instance
 */
export declare const globalHandlerManager: HandlerManager;
//# sourceMappingURL=handler-manager.d.ts.map