export type Role = "system" | "user" | "assistant";
export interface Message {
    /** The role of the message sender */
    role: Role;
    /** The content of the message */
    content: string;
}
export interface ModelInfo {
    /** The name of the model */
    name: string;
    /** The token cost for the model's prompt */
    promptTokenCost: number;
    /** The token cost for the model's completion */
    completionTokenCost: number;
    /** The maximum number of tokens allowed for the model */
    maxTokens: number;
}
export interface ChatModelInfo extends ModelInfo {
}
export interface EmbeddingModelInfo extends ModelInfo {
    /** The number of dimensions for the model's embeddings */
    embeddingDimensions: number;
}
export interface LLMResponse {
    /** Information about the model used for the response */
    modelInfo: ModelInfo;
    /** The number of tokens used for the prompt */
    promptTokensUsed?: number;
    /** The number of tokens used for the completion */
    completionTokensUsed?: number;
}
export interface EmbeddingModelResponse extends LLMResponse {
    /** The embedding generated by the model */
    embedding: number[];
}
export interface ChatModelResponse extends LLMResponse {
    /** The content generated by the model */
    content?: string;
}
