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 } from '@n8n/db';
import type { EntityManager } from '@n8n/db';
import { ErrorReporter } from 'n8n-core';
import { WorkflowFinderService } from '../../workflows/workflow-finder.service';
import { ChatHubAgentService } from './chat-hub-agent.service';
import { ChatHubExecutionService } from './chat-hub-execution.service';
import { ChatHubAuthenticationMetadata } from './chat-hub-extractor';
import { ChatHubTitleService } from './chat-hub-title.service';
import { ChatHubToolService } from './chat-hub-tool.service';
import { ChatHubWorkflowService } from './chat-hub-workflow.service';
import { ChatHubAttachmentService } from './chat-hub.attachment.service';
import { ChatHubModelsService } from './chat-hub.models.service';
import { HumanMessagePayload, RegenerateMessagePayload, EditMessagePayload } from './chat-hub.types';
import { ChatHubMessageRepository } from './chat-message.repository';
import { ChatHubSessionRepository } from './chat-session.repository';
import { ChatStreamService } from './chat-stream.service';
export declare class ChatHubService {
    private readonly logger;
    private readonly errorReporter;
    private readonly executionRepository;
    private readonly workflowFinderService;
    private readonly sessionRepository;
    private readonly messageRepository;
    private readonly chatHubAgentService;
    private readonly chatHubModelsService;
    private readonly chatHubAttachmentService;
    private readonly chatStreamService;
    private readonly chatHubExecutionService;
    private readonly chatHubTitleService;
    private readonly chatHubToolService;
    private readonly chatHubWorkflowService;
    private readonly globalConfig;
    constructor(logger: Logger, errorReporter: ErrorReporter, executionRepository: ExecutionRepository, workflowFinderService: WorkflowFinderService, sessionRepository: ChatHubSessionRepository, messageRepository: ChatHubMessageRepository, chatHubAgentService: ChatHubAgentService, chatHubModelsService: ChatHubModelsService, chatHubAttachmentService: ChatHubAttachmentService, chatStreamService: ChatStreamService, chatHubExecutionService: ChatHubExecutionService, chatHubTitleService: ChatHubTitleService, chatHubToolService: ChatHubToolService, chatHubWorkflowService: ChatHubWorkflowService, globalConfig: GlobalConfig);
    private pickCredentialId;
    private ensurePreviousMessage;
    private tryResumeWaitingExecution;
    stopGeneration(user: User, sessionId: ChatSessionId, messageId: ChatMessageId): Promise<void>;
    private getModelCredential;
    private getChatSession;
    private createChatSession;
    private getChatMessage;
    getConversations(userId: string, limit: number, cursor?: string, type?: string): Promise<ChatHubConversationsResponse>;
    ensureConversation(userId: string, sessionId: string, trx?: EntityManager): Promise<void>;
    getConversation(userId: string, sessionId: string): Promise<ChatHubConversationResponse>;
    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;
    sendHumanMessage(user: User, payload: HumanMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
    sendHumanMessageManual(user: User, payload: HumanMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
    editMessage(user: User, payload: EditMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
    editMessageManual(user: User, payload: EditMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
    regenerateAIMessage(user: User, payload: RegenerateMessagePayload, executionMetadata: ChatHubAuthenticationMetadata): Promise<void>;
    regenerateAIMessageManual(user: User, payload: RegenerateMessagePayload, executionMetadata: ChatHubAuthenticationMetadata, pushRef: string): Promise<void>;
    reconnectToStream(sessionId: ChatSessionId, lastReceivedSequence: number): Promise<{
        hasActiveStream: boolean;
        currentMessageId: ChatMessageId | null;
        pendingChunks: Array<{
            sequenceNumber: number;
            content: string;
        }>;
        lastSequenceNumber: number;
    }>;
    private executeChatWorkflowWithCleanup;
    private convertMessageToDto;
    private convertSessionEntityToDto;
}
