import type { ModelMessage } from "ai";
import type { AlsContext } from "#context/container.js";
import { type PreparedMemoryPreamble } from "#context/keys.js";
import type { CompactionCompletedStreamEvent, CompactionRequestedStreamEvent, TurnCompletedStreamEvent, TurnStartedStreamEvent } from "#protocol/message.js";
import { type MemoryInstrumentation } from "#instrumentation/memory.js";
import type { ResolvedMemoryDefinition } from "#runtime/types.js";
export declare function prepareMemoryPreamble(ctx: AlsContext, input: PreparedMemoryPreamble): void;
export declare function dispatchMemoryTurnStarted(input: {
    readonly abortSignal?: AbortSignal;
    readonly appRoot: string;
    readonly ctx: AlsContext;
    readonly event: TurnStartedStreamEvent;
    readonly memories: readonly ResolvedMemoryDefinition[];
    readonly nodeId: string;
    readonly instrumentation?: MemoryInstrumentation;
}): Promise<readonly ModelMessage[]>;
export declare function drainMemoryCommit(ctx: AlsContext): import("#context/keys.js").PendingMemoryCommit | undefined;
export declare function prepareMemoryCompaction(ctx: AlsContext, input: {
    readonly history: readonly ModelMessage[];
    readonly state?: Readonly<Record<string, unknown>>;
}): void;
export declare function dispatchMemoryCompactionRequested(input: {
    readonly abortSignal?: AbortSignal;
    readonly appRoot: string;
    readonly ctx: AlsContext;
    readonly event: CompactionRequestedStreamEvent;
    readonly memories: readonly ResolvedMemoryDefinition[];
    readonly messages: readonly ModelMessage[];
    readonly nodeId: string;
    readonly instrumentation?: MemoryInstrumentation;
}): Promise<void>;
export declare function dispatchMemoryCompactionCompleted(input: {
    readonly abortSignal?: AbortSignal;
    readonly ctx: AlsContext;
    readonly event: CompactionCompletedStreamEvent;
    readonly memories: readonly ResolvedMemoryDefinition[];
    readonly messages: readonly ModelMessage[];
    readonly instrumentation?: MemoryInstrumentation;
}): Promise<readonly ModelMessage[]>;
export declare function dispatchMemoryTurnCompleted(input: {
    readonly abortSignal?: AbortSignal;
    readonly ctx: AlsContext;
    readonly event: TurnCompletedStreamEvent;
    readonly memories: readonly ResolvedMemoryDefinition[];
    readonly messages: readonly ModelMessage[];
    readonly instrumentation?: MemoryInstrumentation;
}): Promise<void>;
export declare function memoryOperationId(input: {
    readonly phase: string;
    readonly sequence: number;
    readonly sessionId: string;
    readonly slot: string;
    readonly turnId: string | null;
}): string;
