import { ChatCompletionMessageParam } from 'openai/resources/index.js'; import { Tokenizer } from './index.js'; import { FunctionDefinition } from '../index.js'; type OmitUnion = T extends any ? Omit : never; export type ChatMessage = OmitUnion & { content: string | null; }; export type ChatLogType = 'persistent' | 'temporary'; export interface ChatLog { tokens: number; msgs: ChatMessage[]; } export interface ChatFunctions { tokens: number; definitions: FunctionDefinition[]; } export declare class ChatLogs { private _logs; private _tokensPerMsg; private _functions; constructor(logs?: Record, tokensPerMsg?: Record, functions?: ChatFunctions); get tokens(): number; get messages(): ChatMessage[]; get(type: ChatLogType): ChatLog; getMsg(type: ChatLogType, index: number): ChatMessage | undefined; getMsgTokens(type: ChatLogType, index: number): number; add(type: ChatLogType, msgs: ChatMessage[], tokens: number[]): void; insert(type: ChatLogType, msgs: ChatMessage[], tokens: number[], index: number): void; addFunction(fn: FunctionDefinition, tokens: number): void; clone(): ChatLogs; toString(): string; toJSON(): { msgs: Record; functions: { tokens: number; names: string[]; }; }; static from(persistentMsgs: ChatMessage[], temporaryMsgs: ChatMessage[], tokenizer: Tokenizer): ChatLogs; } export {};