/**
 * Copyright 2025 Vybestack LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { type NormalizedToolCall } from './ToolCallNormalizer.js';
export interface FailedToolCall {
    index: number;
    name?: string;
    args?: string;
    isValid: boolean;
    validationErrors: string[];
}
export interface PipelineResult {
    normalized: NormalizedToolCall[];
    failed: FailedToolCall[];
    stats: {
        collected: number;
        normalized: number;
        failed: number;
    };
}
/**
 * Simplified ToolCallPipeline - Collection and normalization only
 */
export declare class ToolCallPipeline {
    private collector;
    private normalizer;
    constructor();
    /**
     * Create a consistent AbortError with DOMException polyfill support
     */
    private createAbortError;
    /**
     * Add tool call fragment
     */
    addFragment(index: number, fragment: Partial<ToolCallFragment>): void;
    /**
     * Process all collected tool calls (collection + normalization only)
     */
    process(abortSignal?: AbortSignal): Promise<PipelineResult>;
    /**
     * Normalize single tool name (for non-streaming path)
     */
    normalizeToolName(name: string, args?: string): string;
    /**
     * Get pipeline statistics
     */
    getStats(): {
        collector: {
            totalCalls: number;
            completedCalls: number;
            pendingFragments: number;
        };
    };
    /**
     * Reset pipeline state
     */
    reset(): void;
}
import { type ToolCallFragment } from './ToolCallCollector.js';
