import type { Model } from '@levelcode/common/old-constants';
import type { TrackEventFn } from '@levelcode/common/types/contracts/analytics';
import type { StreamChunk } from '@levelcode/common/types/contracts/llm';
import type { Logger } from '@levelcode/common/types/contracts/logger';
import type { PrintModeError, PrintModeText } from '@levelcode/common/types/print-mode';
import type { PromptResult } from '@levelcode/common/util/error';
export declare function processStreamWithTools(params: {
    stream: AsyncGenerator<StreamChunk, PromptResult<string | null>>;
    processors: Record<string, {
        onTagStart: (tagName: string, attributes: Record<string, string>) => void;
        onTagEnd: (tagName: string, params: Record<string, any>) => void;
    }>;
    defaultProcessor: (toolName: string) => {
        onTagStart: (tagName: string, attributes: Record<string, string>) => void;
        onTagEnd: (tagName: string, params: Record<string, any>) => void;
    };
    onError: (tagName: string, errorMessage: string) => void;
    onResponseChunk: (chunk: PrintModeText | PrintModeError) => void;
    logger: Logger;
    loggerOptions?: {
        userId?: string;
        model?: Model;
        agentName?: string;
    };
    trackEvent: TrackEventFn;
    executeXmlToolCall: (params: {
        toolCallId: string;
        toolName: string;
        input: Record<string, unknown>;
    }) => Promise<void>;
}): AsyncGenerator<StreamChunk, PromptResult<string | null>>;
