import { EnumLowerCaseValue } from '../../internals/types.js'; import { Serializable } from '../../internals/serializable.js'; import '../../internals/helpers/guards.js'; /** * Copyright 2025 IBM Corp. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare const Role: { readonly ASSISTANT: "assistant"; readonly SYSTEM: "system"; readonly USER: "user"; }; type RoleType = EnumLowerCaseValue | string; interface BaseMessageMeta { [key: string]: any; createdAt?: Date; } interface BaseMessageInput { role: RoleType; text: string; meta?: BaseMessageMeta; } declare class BaseMessage extends Serializable { readonly role: RoleType; readonly text: string; readonly meta?: BaseMessageMeta | undefined; constructor(role: RoleType, text: string, meta?: BaseMessageMeta | undefined); static of({ role, text, meta }: BaseMessageInput): BaseMessage; createSnapshot(): { role: string; text: string; meta: BaseMessageMeta | undefined; }; loadSnapshot(state: ReturnType): this & { role: string; text: string; meta: BaseMessageMeta | undefined; }; } export { BaseMessage, type BaseMessageInput, type BaseMessageMeta, Role, type RoleType };