import type { AgentMessage } from '@earendil-works/pi-agent-core';
import type { Config } from '../../config/schema.js';
import type { AgentInstanceGateway } from '../agent-instance-gateway.js';
import type { ModelManager } from '../models/index.js';
import type { SessionStore } from '../../session/store.js';
import type { EmbeddedStreamEvent, RunXopcEmbeddedTurnResult } from './types.js';
export type RunEmbeddedForSessionParams = {
    sessionKey: string;
    runId?: string;
    userMessage: AgentMessage;
    sessionStore: SessionStore;
    agentManager: AgentInstanceGateway;
    modelManager: ModelManager;
    thinkingOverride?: string | null;
    abortSignal?: AbortSignal;
    onEvent?: (event: EmbeddedStreamEvent) => void;
    getConfig?: () => Config | undefined;
    beforeTurn?: () => void | Promise<void>;
    afterTurn?: (userPlain: string) => void | Promise<void>;
    startupAction?: 'new' | 'reset';
    forceStartupContext?: boolean;
    applyStartupContext?: boolean;
    /** When true, dispose session MCP runtime after this turn completes. */
    cleanupBundleMcpOnRunEnd?: boolean;
};
export declare function runEmbeddedTurnForSession(params: RunEmbeddedForSessionParams): Promise<RunXopcEmbeddedTurnResult>;
