import type { ChatHubConversationModel, ChatHubProvider, ChatMessageId, ChatSessionId, ChatAttachment } from '@n8n/api-types';
import type { INode, INodeCredentials } from 'n8n-workflow';
import { z } from 'zod';
export interface ModelWithCredentials {
    provider: ChatHubProvider;
    model?: string;
    workflowId?: string;
    credentialId: string | null;
    agentId?: string;
    name?: string;
}
export interface BaseMessagePayload {
    userId: string;
    sessionId: ChatSessionId;
    model: ChatHubConversationModel;
    credentials: INodeCredentials;
    timeZone?: string;
}
export interface HumanMessagePayload extends BaseMessagePayload {
    messageId: ChatMessageId;
    message: string;
    previousMessageId: ChatMessageId | null;
    attachments: ChatAttachment[];
    tools: INode[];
    agentName?: string;
}
export interface RegenerateMessagePayload extends BaseMessagePayload {
    retryId: ChatMessageId;
}
export interface EditMessagePayload extends BaseMessagePayload {
    editId: ChatMessageId;
    messageId: ChatMessageId;
    message: string;
    newAttachments: ChatAttachment[];
    keepAttachmentIndices: number[];
}
export type ContentBlock = {
    type: 'text';
    text: string;
} | {
    type: 'image_url';
    image_url: string;
};
export type MessageRole = 'ai' | 'system' | 'user';
export interface MessageRecord {
    type: MessageRole;
    message: string | ContentBlock[];
    hideFromUI: boolean;
}
declare const ChatTriggerResponseModeSchema: z.ZodEnum<["streaming", "lastNode", "responseNode", "responseNodes"]>;
export type ChatTriggerResponseMode = z.infer<typeof ChatTriggerResponseModeSchema>;
export declare const chatTriggerParamsShape: z.ZodObject<{
    availableInChat: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    agentName: z.ZodOptional<z.ZodString>;
    agentDescription: z.ZodOptional<z.ZodString>;
    options: z.ZodOptional<z.ZodObject<{
        allowFileUploads: z.ZodOptional<z.ZodBoolean>;
        allowedFilesMimeTypes: z.ZodOptional<z.ZodString>;
        responseMode: z.ZodOptional<z.ZodEnum<["streaming", "lastNode", "responseNode", "responseNodes"]>>;
    }, "strip", z.ZodTypeAny, {
        responseMode?: "lastNode" | "responseNode" | "streaming" | "responseNodes" | undefined;
        allowFileUploads?: boolean | undefined;
        allowedFilesMimeTypes?: string | undefined;
    }, {
        responseMode?: "lastNode" | "responseNode" | "streaming" | "responseNodes" | undefined;
        allowFileUploads?: boolean | undefined;
        allowedFilesMimeTypes?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    availableInChat: boolean;
    options?: {
        responseMode?: "lastNode" | "responseNode" | "streaming" | "responseNodes" | undefined;
        allowFileUploads?: boolean | undefined;
        allowedFilesMimeTypes?: string | undefined;
    } | undefined;
    agentName?: string | undefined;
    agentDescription?: string | undefined;
}, {
    options?: {
        responseMode?: "lastNode" | "responseNode" | "streaming" | "responseNodes" | undefined;
        allowFileUploads?: boolean | undefined;
        allowedFilesMimeTypes?: string | undefined;
    } | undefined;
    agentName?: string | undefined;
    availableInChat?: boolean | undefined;
    agentDescription?: string | undefined;
}>;
export {};
