import type { BatchRequest, BatcherConfig } from '../../types/index.js';
/**
 * Collects pending tool calls and groups compatible ones into batches.
 */
export declare class Batcher {
    private readonly pending;
    private readonly config;
    constructor(config?: Partial<BatcherConfig>);
    /**
     * Add a call to the pending queue. Returns batch request if ready.
     */
    addCall(toolName: string, input: unknown): BatchRequest | null;
    /**
     * Flush all pending calls for a tool into a batch request.
     */
    flushTool(toolName: string): BatchRequest | null;
    /**
     * Flush all expired batches (past the batch window).
     */
    flushExpired(): BatchRequest[];
    /**
     * Get the number of pending calls for a tool.
     */
    pendingCount(toolName: string): number;
    /**
     * Get total pending calls across all tools.
     */
    totalPending(): number;
    /**
     * Clear all pending calls.
     */
    clear(): void;
}
//# sourceMappingURL=batcher.d.ts.map