export type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
export type CacheHint = 'cache' | 'ephemeral' | 'none';
export interface ToolCall {
    id: string;
    type: 'function';
    function: {
        name: string;
        arguments: string;
    };
}
export interface BaseMessage {
    role: MessageRole;
    content: string | null;
    timestamp?: number;
    cacheHint?: CacheHint;
}
export interface SystemMessage extends BaseMessage {
    role: 'system';
    content: string;
}
export interface UserMessage extends BaseMessage {
    role: 'user';
    content: string;
}
export interface AssistantMessage extends BaseMessage {
    role: 'assistant';
    content: string | null;
    toolCalls?: ToolCall[];
}
export interface ToolMessage extends BaseMessage {
    role: 'tool';
    content: string;
    toolCallId: string;
}
export type Message = SystemMessage | UserMessage | AssistantMessage | ToolMessage;
export declare function createSystemMessage(content: string, cacheHint?: CacheHint): SystemMessage;
export declare function createUserMessage(content: string): UserMessage;
export declare function createAssistantMessage(content: string | null, toolCalls?: ToolCall[]): AssistantMessage;
export declare function createToolMessage(content: string, toolCallId: string): ToolMessage;
//# sourceMappingURL=index.d.ts.map