/**
 * Handler registry for managing MSW request handlers
 */
import type { RequestHandler } from 'msw';
import type { HandlerRegistry, HandlerMetadata, TaggedHandler } from './types';
/**
 * Implementation of handler registry
 */
export declare class MockHandlerRegistry implements HandlerRegistry {
    private handlers;
    private taggedHandlers;
    private handlerMetadata;
    /**
     * Register handlers
     */
    register(...handlers: RequestHandler[]): void;
    /**
     * Unregister handlers
     */
    unregister(...handlers: RequestHandler[]): void;
    /**
     * Get all registered handlers
     */
    getHandlers(): RequestHandler[];
    /**
     * Clear all handlers
     */
    clear(): void;
    /**
     * Get handlers by tag
     */
    getByTag(tag: string): RequestHandler[];
    /**
     * Tag handlers
     */
    tag(tag: string, ...handlers: RequestHandler[]): void;
    /**
     * Set metadata for a handler
     */
    setMetadata(handler: RequestHandler, metadata: HandlerMetadata): void;
    /**
     * Get metadata for a handler
     */
    getMetadata(handler: RequestHandler): HandlerMetadata | undefined;
    /**
     * Get all tags
     */
    getTags(): string[];
    /**
     * Remove tag
     */
    removeTag(tag: string): void;
    /**
     * Get handlers with metadata
     */
    getTaggedHandlers(): TaggedHandler[];
    /**
     * Find handlers by criteria
     */
    find(criteria: {
        name?: string;
        tags?: string[];
        author?: string;
    }): RequestHandler[];
    /**
     * Get registry statistics
     */
    getStats(): {
        totalHandlers: number;
        totalTags: number;
        tagStats: {
            tag: string;
            count: number;
        }[];
    };
}
/**
 * Global handler registry instance
 */
export declare const globalHandlerRegistry: MockHandlerRegistry;
/**
 * Register handlers globally
 */
export declare function registerHandlers(...handlers: RequestHandler[]): void;
/**
 * Unregister handlers globally
 */
export declare function unregisterHandlers(...handlers: RequestHandler[]): void;
/**
 * Get all registered handlers
 */
export declare function getRegisteredHandlers(): RequestHandler[];
/**
 * Clear all registered handlers
 */
export declare function clearRegisteredHandlers(): void;
/**
 * Tag handlers globally
 */
export declare function tagHandlers(tag: string, ...handlers: RequestHandler[]): void;
/**
 * Get handlers by tag
 */
export declare function getHandlersByTag(tag: string): RequestHandler[];
/**
 * Create a scoped registry
 */
export declare function createHandlerRegistry(): MockHandlerRegistry;
//# sourceMappingURL=registry.d.ts.map