/**
 * Request tracking utility for managing DAP request timeouts
 */
import { IRequestTracker, TrackedRequest } from './dap-proxy-interfaces.js';
export declare class RequestTracker implements IRequestTracker {
    protected pendingRequests: Map<string, TrackedRequest>;
    protected defaultTimeoutMs: number;
    constructor(defaultTimeoutMs?: number);
    /**
     * Track a new request with timeout
     */
    track(requestId: string, command: string, timeoutMs?: number): void;
    /**
     * Mark a request as completed and clear its timeout
     */
    complete(requestId: string): void;
    /**
     * Clear all pending requests
     */
    clear(): void;
    /**
     * Get all pending requests
     */
    getPending(): Map<string, TrackedRequest>;
    /**
     * Get count of pending requests
     */
    getPendingCount(): number;
    /**
     * Check if a specific request is pending
     */
    isPending(requestId: string): boolean;
    /**
     * Get elapsed time for a request
     */
    getElapsedTime(requestId: string): number | null;
}
/**
 * Enhanced request tracker with timeout callbacks
 */
export declare class CallbackRequestTracker extends RequestTracker {
    private onTimeout;
    constructor(onTimeout: (requestId: string, command: string) => void, defaultTimeoutMs?: number);
    track(requestId: string, command: string, timeoutMs?: number): void;
}
