import type { ConversationManager } from './conversation.js';
import type { ConfigManager } from '../config/manager.js';
import type { ContentPart, LLMProvider } from '../providers/interface.js';
import type { ProviderRegistry } from '../providers/registry.js';
import type { AdaptivePlanner } from '@pellux/goodvibes-sdk/platform/core/adaptive-planner';
import type { ExecutionPlan } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
import type { ExecutionPlanManager } from '@pellux/goodvibes-sdk/platform/core/execution-plan';
import type { RuntimeEventBus } from '../runtime/events/index.js';
import type { ToolCall, ToolResult } from '@pellux/goodvibes-sdk/platform/types/tools';
import type { AgentManager } from '../tools/agent/index.js';
type EmitterContextFactory = (turnId: string) => import('../runtime/emitters/index.js').EmitterContext;
export type ChatResponseWithReasoning = Awaited<ReturnType<LLMProvider['chat']>> & {
    reasoning?: string;
    reasoningSummary?: string;
};
export declare function maybeEmitAdaptivePlannerDecision(text: string, flagEnabled: boolean, adaptivePlanner: Pick<AdaptivePlanner, 'select'> | null, runtimeBus: RuntimeEventBus | null, emitterContext: EmitterContextFactory, turnId: string): void;
export declare function prepareConversationForTurn(conversation: ConversationManager, providerRegistry: Pick<ProviderRegistry, 'getCurrentModel'>, text: string, content: ContentPart[] | undefined, sessionId?: string, planManager?: Pick<ExecutionPlanManager, 'getActive' | 'toMarkdown'> | null): ExecutionPlan | null;
export declare function handleToolResponseOutcome(args: {
    conversation: ConversationManager;
    agentManager: Pick<AgentManager, 'list' | 'spawn'>;
    planManager: Pick<ExecutionPlanManager, 'getActive' | 'getSummary' | 'getNextItems' | 'updateItem'> | null;
    configManager: Pick<ConfigManager, 'get'>;
    providerRegistry: Pick<ProviderRegistry, 'getCurrentModel'>;
    runtimeBus: RuntimeEventBus | null;
    emitterContext: EmitterContextFactory;
    turnId: string;
    response: ChatResponseWithReasoning;
    executeToolCalls: (turnId: string, calls: ToolCall[]) => Promise<ToolResult[]>;
    setPendingToolCalls: (calls: ToolCall[]) => void;
    messageQueueLength: number;
    requestRender: () => void;
    sessionId?: string;
}): Promise<{
    continueLoop: boolean;
    results: ToolResult[];
}>;
export declare function handleFinalResponseOutcome(args: {
    conversation: ConversationManager;
    agentManager: Pick<AgentManager, 'list' | 'spawn'>;
    planManager: Pick<ExecutionPlanManager, 'parseFromMarkdown' | 'replaceItems' | 'load' | 'save' | 'getActive' | 'getNextItems' | 'updateItem'> | null;
    configManager: Pick<ConfigManager, 'get'>;
    providerRegistry: Pick<ProviderRegistry, 'getCurrentModel'>;
    runtimeBus: RuntimeEventBus | null;
    emitterContext: EmitterContextFactory;
    turnId: string;
    response: ChatResponseWithReasoning;
    preTurnPlan: ExecutionPlan | null;
    requestRender: () => void;
    setAutoSpawnTimeout: (timeout: ReturnType<typeof setTimeout> | null) => void;
    autoSpawnTimeoutMs: number;
    sessionId?: string;
}): false;
export declare function emitMalformedToolUseWarning(args: {
    conversation: ConversationManager;
    providerRegistry: Pick<ProviderRegistry, 'getCurrentModel'>;
    runtimeBus: RuntimeEventBus | null;
    emitterContext: EmitterContextFactory;
    turnId: string;
    isReconciliationEnabled: boolean;
}): void;
export {};
//# sourceMappingURL=orchestrator-turn-helpers.d.ts.map