import type { ChatEventChunk, ChatEventDone, ChatEventError, ChatMessageItemOption, IChatEvent, IChatMessage } from '@difizen/magent-chat';
import type { ChatMessageOption, IChatMessageItem } from '@difizen/magent-chat';
export type { AUChatMessageModel } from './chat-message-model.js';
export type MessageSender = 'AI' | 'HUMAN';
export type MessageType = string;
export interface AUMessageCreate extends ChatMessageOption {
    sessionId: string;
    agentId: string;
    input: string;
    stream?: boolean;
}
export interface StepContent {
    currentStep: number;
    roundStartsAt: number;
    planningContent: string;
    executingContent: ChatEventStepQA[];
    expressingContent: string;
    reviewingContent: string;
}
export interface IAUMessage extends IChatMessage {
    sessionId: string;
    agentId: string;
}
export interface AUMessageOption extends ChatMessageOption {
    sessionId: string;
    agentId: string;
}
export declare const AUChatMessageType: {
    isCreate(data?: Record<string, any>): data is AUMessageCreate;
    isMessageOption(data?: Record<string, any>): data is AUMessageOption;
};
export type AUChatMessageOption = AUMessageCreate | AUMessageOption;
export interface APIContentItem {
    type: 'human' | 'ai';
    content: string;
    gmt_created: string;
    gmt_modified: string;
}
export interface APIMessage {
    message_id: number;
    output?: string;
    content: string;
    gmt_created: string;
    gmt_modified: string;
    id: number;
    session_id: string;
}
export declare const toMessageItem: (item: APIContentItem) => IChatMessageItem;
export declare const toMessageOption: (msg: APIMessage, agentId: string) => IAUMessage;
export declare enum QuestionState {
    SENDING = "sending",
    VALIDATING = "validating",
    FAIL = "fail",
    SUCCESS = "success"
}
export declare enum AnswerState {
    WAITING = "waiting",
    RECEIVING = "receiving",
    FAIL = "fail",
    SUCCESS = "success"
}
export interface AUChatMessageItemOption extends ChatMessageItemOption {
    created?: string;
    planner?: string;
    agentId: string;
}
export interface ChainItem {
    source: string;
    type: string;
}
export interface ChatTokenUsage {
    completion_tokens: number;
    prompt_tokens: number;
    total_tokens: number;
}
export interface ChatEventResult extends IChatEvent {
    response_time: number;
    message_id: number;
    session_id: string;
    output: string;
    start_time: string;
    end_time: string;
    invocation_chain: ChainItem[];
    token_usage: ChatTokenUsage;
    type: 'result';
}
export interface ChatEventStep {
    agent_id: string;
    output: (string | ChatEventStepQA)[] | string;
    type: 'steps';
}
export interface ChatEventStepQA {
    input: string;
    output: string;
}
export declare const AUChatEvent: {
    isResult: (e: IChatEvent) => e is ChatEventResult;
    isStep: (e: IChatEvent) => e is ChatEventStep;
    format: (e: string, data: any) => ChatEventResult | ChatEventStep | ChatEventChunk | ChatEventError | ChatEventDone;
};
//# sourceMappingURL=protocol.d.ts.map