import { Context, Effect, Layer, Option, Schema } from "effect"; import { Prompt } from "effect/unstable/ai"; /** @experimental */ export type Metadata = Readonly>; /** @experimental */ export interface Key { readonly agent: string; readonly subject: string; } /** @experimental */ export type ItemPart = Prompt.UserMessagePart; /** @experimental */ export interface Item { readonly id: string; readonly content: ReadonlyArray; readonly metadata?: Metadata; } /** @experimental */ export declare const itemFromPromptPart: (a: Prompt.Part) => Option.Option; /** @experimental */ export declare const isMessageFromRecall: (message: Prompt.Message) => boolean; /** @experimental */ export declare const messageFromRecall: (content: ReadonlyArray) => Prompt.UserMessage; /** @experimental */ export declare const replaceRecalledMessage: { (content: ReadonlyArray): (message: Prompt.UserMessage) => Prompt.UserMessage; (message: Prompt.UserMessage, content: ReadonlyArray): Prompt.UserMessage; }; /** @experimental */ export declare const recalledMessageIdentity: (message: Prompt.Message) => Prompt.Message; /** @experimental */ export declare const projectTranscript: (transcript: Prompt.Prompt) => Prompt.Prompt; /** @experimental */ export interface RecallInput { readonly key: Key; readonly turn: number; readonly prompt: Prompt.Prompt; } /** @experimental */ export interface RememberInput { readonly key: Key; readonly turn: number; readonly transcript: Prompt.Prompt; readonly terminal: boolean; } /** @experimental */ export interface ForgetInput { readonly key: Key; readonly id?: string | undefined; } declare const MemoryError_base: Schema.Class, import("effect/Cause").YieldableError>; /** @experimental */ export declare class MemoryError extends MemoryError_base { } /** @experimental */ export interface Interface { readonly recall: (input: RecallInput) => Effect.Effect, MemoryError>; readonly remember: (input: RememberInput) => Effect.Effect; readonly forget: (input: ForgetInput) => Effect.Effect; } declare const Memory_base: Context.ServiceClass; /** @experimental */ export declare class Memory extends Memory_base { } /** @experimental */ export declare const merge: { (second: Interface): (first: Interface) => Interface; (first: Interface, second: Interface): Interface; }; /** @experimental Memory implementation that recalls and records nothing. */ export declare const layerNoop: Layer.Layer; /** @experimental */ export declare const layerTest: (implementation: Interface) => Layer.Layer; export {};