import type { CommandHandler } from '../messaging/command-handler.js';
import type { AgentInstanceGateway } from '../agent-instance-gateway.js';
import type { ModelManager } from '../models/index.js';
import type { SessionStore } from '../../session/index.js';
import type { Config } from '../../config/schema.js';
import { type DirectInboundAttachment } from './build-direct-message-content.js';
import type { ProcessDirectStreamLog } from './process-direct-streaming.js';
export type RunProcessDirectDeps = {
    log: ProcessDirectStreamLog;
    config: Config;
    parseSessionKey: (sessionKey: string) => {
        channel: string;
        chatId: string;
    };
    initSessionContext: (sessionKey: string, channel: string, chatId: string) => void;
    hydrateSessionWorkspaceFromStore: (sessionKey: string) => Promise<void>;
    hydrateSessionModelFromStore: (sessionKey: string) => Promise<void>;
    agentManager: AgentInstanceGateway;
    sessionStore: SessionStore;
    modelManager: ModelManager;
    applyResolvedThinkingLevel: (sessionKey: string, thinking?: string | null) => Promise<void>;
    prepareInboundAttachments: (sessionKey: string, attachments?: DirectInboundAttachment[]) => Promise<DirectInboundAttachment[] | undefined>;
    commandHandler: Pick<CommandHandler, 'executeCommandAndAggregateReply'>;
    onTurnComplete?: (sessionKey: string, lastAssistantText?: string) => void;
    endDirectRequestContext: () => void;
    resetSession: (sessionKey: string) => Promise<{
        sessionId: string;
        previousSessionId: string;
    } | null>;
};
export declare function runProcessDirect(deps: RunProcessDirectDeps, input: {
    content: string;
    sessionKey: string;
    attachments?: DirectInboundAttachment[];
    thinking?: string;
}): Promise<string>;
