import { processStreamWithTools } from '../tool-stream-parser';
import type { CustomToolCall, ExecuteToolCallParams } from './tool-executor';
import type { AgentTemplate } from '../templates/types';
import type { LevelCodeToolCall } from '@levelcode/common/tools/list';
import type { Logger } from '@levelcode/common/types/contracts/logger';
import type { ParamsExcluding } from '@levelcode/common/types/function-params';
import type { Message, ToolMessage } from '@levelcode/common/types/messages/levelcode-message';
import type { PrintModeEvent } from '@levelcode/common/types/print-mode';
import type { Subgoal } from '@levelcode/common/types/session-state';
import type { ProjectFileContext } from '@levelcode/common/util/file';
export declare function processStream(params: {
    agentContext: Record<string, Subgoal>;
    agentTemplate: AgentTemplate;
    ancestorRunIds: string[];
    fileContext: ProjectFileContext;
    fingerprintId: string;
    fullResponse: string;
    logger: Logger;
    messages: Message[];
    repoId: string | undefined;
    runId: string;
    signal: AbortSignal;
    userId: string | undefined;
    onCostCalculated: (credits: number) => Promise<void>;
    onResponseChunk: (chunk: string | PrintModeEvent) => void;
} & Omit<ExecuteToolCallParams<any>, 'fileProcessingState' | 'fromHandleSteps' | 'fullResponse' | 'input' | 'previousToolCallFinished' | 'state' | 'toolCallId' | 'toolCalls' | 'toolName' | 'toolResults' | 'toolResultsToAddAfterStream'> & ParamsExcluding<typeof processStreamWithTools, 'processors' | 'defaultProcessor' | 'onError' | 'loggerOptions' | 'executeXmlToolCall'>): Promise<{
    fullResponse: string;
    fullResponseChunks: string[];
    hadToolCallError: boolean;
    messageId: string | null;
    toolCalls: (CustomToolCall | LevelCodeToolCall)[];
    toolResults: ToolMessage[];
}>;
