import { AgentChatMessageDto, type AgentChatMessagesResponse, AgentChatResumeDto } from '@n8n/api-types';
import type { AuthenticatedRequest } from '@n8n/db';
import type { Response } from 'express';
import { CredentialsService } from '../../credentials/credentials.service';
import { AgentChatAttachmentService } from './agent-chat-attachment.service';
import { AgentExecutionOrchestratorService } from './agent-execution-orchestrator.service';
import { type FlushableResponse } from './agent-sse-stream';
import { AgentTestChatService } from './agent-test-chat.service';
import { AgentTestRunService } from './agent-test-run.service';
import { AgentsService } from './agents.service';
import { AgentsBuilderService } from './builder/agents-builder.service';
export declare class AgentChatController {
    private readonly agentExecutionOrchestratorService;
    private readonly agentTestRunService;
    private readonly agentTestChatService;
    private readonly agentsBuilderService;
    private readonly credentialsService;
    private readonly agentsService;
    private readonly agentChatAttachmentService;
    constructor(agentExecutionOrchestratorService: AgentExecutionOrchestratorService, agentTestRunService: AgentTestRunService, agentTestChatService: AgentTestChatService, agentsBuilderService: AgentsBuilderService, credentialsService: CredentialsService, agentsService: AgentsService, agentChatAttachmentService: AgentChatAttachmentService);
    private storeChatAttachments;
    chat(req: AuthenticatedRequest<{
        projectId: string;
    }>, res: FlushableResponse, agentId: string, payload: AgentChatMessageDto): Promise<void>;
    chatResume(req: AuthenticatedRequest<{
        projectId: string;
    }>, res: FlushableResponse, agentId: string, payload: AgentChatResumeDto): Promise<void>;
    cancelChatRun(req: AuthenticatedRequest<{
        projectId: string;
    }>, _res: Response, agentId: string, runId: string): Promise<{
        cancelled: boolean;
    }>;
    getChatMessages(req: AuthenticatedRequest<{
        projectId: string;
        agentId: string;
        threadId: string;
    }>): Promise<AgentChatMessagesResponse>;
    getTestChatMessages(req: AuthenticatedRequest<{
        projectId: string;
        agentId: string;
    }>): Promise<AgentChatMessagesResponse>;
    getChatAttachment(req: AuthenticatedRequest<{
        projectId: string;
        agentId: string;
        attachmentId: string;
    }>, res: Response): Promise<void>;
    clearTestChatMessages(req: AuthenticatedRequest<{
        projectId: string;
        agentId: string;
    }>): Promise<{
        ok: boolean;
    }>;
}
