import type * as Cohere from "../../api/index";
import * as core from "../../core";
import type * as serializers from "../index";
import { AssistantMessage } from "./AssistantMessage";
import { SystemMessageV2 } from "./SystemMessageV2";
import { ToolMessageV2 } from "./ToolMessageV2";
import { UserMessageV2 } from "./UserMessageV2";
export declare const ChatMessageV2: core.serialization.Schema<serializers.ChatMessageV2.Raw, Cohere.ChatMessageV2>;
export declare namespace ChatMessageV2 {
    type Raw = ChatMessageV2.User | ChatMessageV2.Assistant | ChatMessageV2.System | ChatMessageV2.Tool;
    interface User extends UserMessageV2.Raw {
        role: "user";
    }
    interface Assistant extends AssistantMessage.Raw {
        role: "assistant";
    }
    interface System extends SystemMessageV2.Raw {
        role: "system";
    }
    interface Tool extends ToolMessageV2.Raw {
        role: "tool";
    }
}
