import { type ChatHubConversationsResponse, type ChatHubConversationResponse, type ChatMessageId, type ChatSessionId, type ChatHubUpdateConversationRequest } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import { ExecutionRepository, User, WorkflowRepository } from '@n8n/db';
import type { EntityManager } from '@n8n/typeorm';
import type { Response } from 'express';
import { ErrorReporter, InstanceSettings } from 'n8n-core';
import { ActiveExecutions } from '../../active-executions';
import { ExecutionService } from '../../executions/execution.service';
import { WorkflowExecutionService } from '../../workflows/workflow-execution.service';
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
import { ChatHubAgentService } from './chat-hub-agent.service';
import { ChatHubCredentialsService } from './chat-hub-credentials.service';
import { ChatHubWorkflowService } from './chat-hub-workflow.service';
import { ChatHubAttachmentService } from './chat-hub.attachment.service';
import { ChatHubModelsService } from './chat-hub.models.service';
import { ChatHubSettingsService } from './chat-hub.settings.service';
import { HumanMessagePayload, RegenerateMessagePayload, EditMessagePayload } from './chat-hub.types';
import { ChatHubMessageRepository } from './chat-message.repository';
import { ChatHubSessionRepository } from './chat-session.repository';
export declare class ChatHubService {
    private readonly logger;
    private readonly errorReporter;
    private readonly executionService;
    private readonly executionRepository;
    private readonly workflowExecutionService;
    private readonly workflowFinderService;
    private readonly workflowRepository;
    private readonly activeExecutions;
    private readonly sessionRepository;
    private readonly messageRepository;
    private readonly chatHubAgentService;
    private readonly chatHubCredentialsService;
    private readonly chatHubWorkflowService;
    private readonly chatHubModelsService;
    private readonly chatHubSettingsService;
    private readonly chatHubAttachmentService;
    private readonly instanceSettings;
    private readonly globalConfig;
    constructor(logger: Logger, errorReporter: ErrorReporter, executionService: ExecutionService, executionRepository: ExecutionRepository, workflowExecutionService: WorkflowExecutionService, workflowFinderService: WorkflowFinderService, workflowRepository: WorkflowRepository, activeExecutions: ActiveExecutions, sessionRepository: ChatHubSessionRepository, messageRepository: ChatHubMessageRepository, chatHubAgentService: ChatHubAgentService, chatHubCredentialsService: ChatHubCredentialsService, chatHubWorkflowService: ChatHubWorkflowService, chatHubModelsService: ChatHubModelsService, chatHubSettingsService: ChatHubSettingsService, chatHubAttachmentService: ChatHubAttachmentService, instanceSettings: InstanceSettings, globalConfig: GlobalConfig);
    private deleteChatWorkflow;
    private getErrorMessage;
    private getAIOutput;
    private pickCredentialId;
    sendHumanMessage(res: Response, user: User, payload: HumanMessagePayload): Promise<void>;
    editMessage(res: Response, user: User, payload: EditMessagePayload): Promise<void>;
    regenerateAIMessage(res: Response, user: User, payload: RegenerateMessagePayload): Promise<void>;
    private prepareReplyWorkflow;
    private prepareBaseChatWorkflow;
    private prepareChatAgentWorkflow;
    private prepareCustomAgentWorkflow;
    private ensurePreviousMessage;
    stopGeneration(user: User, sessionId: ChatSessionId, messageId: ChatMessageId): Promise<void>;
    private executeChatWorkflow;
    private waitForExecutionCompletion;
    private waitForExecutionPoller;
    private waitForExecutionPromise;
    private executeChatWorkflowWithCleanup;
    private generateSessionTitle;
    private prepareTitleGenerationWorkflow;
    private resolveCredentialsAndModelForTitle;
    private resolveFromN8nWorkflow;
    private findSupportedLLMNodes;
    private resolveFromCustomAgent;
    private runTitleWorkflowAndGetTitle;
    private saveHumanMessage;
    private saveAIMessage;
    private getModelCredential;
    private getChatSession;
    private createChatSession;
    private getChatMessage;
    getConversations(userId: string, limit: number, cursor?: string): Promise<ChatHubConversationsResponse>;
    ensureConversation(userId: string, sessionId: string, trx?: EntityManager): Promise<void>;
    getConversation(userId: string, sessionId: string): Promise<ChatHubConversationResponse>;
    private convertMessageToDto;
    private buildMessageHistory;
    deleteAllSessions(): Promise<import("@n8n/typeorm").DeleteResult>;
    updateSession(user: User, sessionId: ChatSessionId, updates: ChatHubUpdateConversationRequest): Promise<void>;
    deleteSession(userId: string, sessionId: ChatSessionId): Promise<void>;
    private ensureValidModel;
    private convertSessionEntityToDto;
}
