import type { ModelMessage } from "ai";
import type { LockedMemorySlot } from "#context/keys.js";
import type { SessionStateMap } from "#harness/types.js";
import type { MemoryRecallResult, MemoryScopeResolverResult } from "#public/memory/index.js";
export declare const MEMORY_NAMESPACE_MAX_BYTES = 1024;
export declare const MEMORY_SCOPE_COMPONENT_MAX_BYTES = 1024;
export declare const MEMORY_SCOPE_TUPLE_MAX_COMPONENTS = 16;
export declare const MEMORY_CANONICAL_KEY_INPUT_MAX_BYTES = 4096;
export declare const MEMORY_ITEM_ID_MAX_BYTES = 1024;
export declare const MEMORY_RAW_RECORD_MAX_COUNT = 512;
export declare const MEMORY_RAW_RECORD_MAX_BYTES = 262144;
export interface InternalMemoryLock extends LockedMemorySlot {
    readonly namespaceKey: string;
    readonly scopeKey: string;
}
export interface NormalizedMemoryRecallMessage {
    readonly content: string;
    readonly itemKey?: string;
}
export interface MemoryRecallBatch {
    readonly lock: InternalMemoryLock;
    readonly messages: readonly NormalizedMemoryRecallMessage[];
    readonly operationId: string;
}
export declare function createMemoryLock(input: {
    readonly namespace: string;
    readonly scope: Exclude<MemoryScopeResolverResult, null>;
    readonly slot: string;
    readonly turn: LockedMemorySlot["turn"];
    readonly visibility: LockedMemorySlot["visibility"];
}): InternalMemoryLock;
export declare function validateMemoryRecallResult(result: MemoryRecallResult, slot: string): readonly NormalizedMemoryRecallMessage[];
export declare function applyMemoryRecallBatches(input: {
    readonly batches: readonly MemoryRecallBatch[];
    readonly history: readonly ModelMessage[];
    readonly state: SessionStateMap | undefined;
}): {
    readonly history: ModelMessage[];
    readonly state: SessionStateMap;
};
export declare function projectMemoryHistory(input: {
    readonly locks: Readonly<Record<string, InternalMemoryLock>>;
    readonly messages: readonly ModelMessage[];
}): readonly ModelMessage[];
export declare function projectMemoryHistoryFromSessionState(input: {
    readonly messages: readonly ModelMessage[];
    readonly state: SessionStateMap | undefined;
}): readonly ModelMessage[];
export declare function canonicalizeMemoryRecords(messages: readonly ModelMessage[]): {
    readonly memory: ModelMessage[];
    readonly ordinary: ModelMessage[];
};
export declare function shouldCanonicalizeMemory(messages: readonly ModelMessage[]): boolean;
export declare function clearMemorySessionState(state: SessionStateMap | undefined): SessionStateMap;
export declare function readMemoryLocks(state: SessionStateMap | undefined): Readonly<Record<string, InternalMemoryLock>>;
