import type { ConversationId, EvidenceManifestId, MemoryEdgeId, MemoryEdgeKind, MemoryId, MemoryScope, MemorySensitivity, MemorySourceKind, MemoryStatus, MemoryType, WorkflowRunId } from "./memory.js";
export interface MemoryModelIdentity {
    readonly provider: string;
    readonly modelId: string;
    readonly modelRevision?: string;
}
export interface MemoryProvenance {
    readonly sourceKind: MemorySourceKind;
    readonly sourceConversationId?: ConversationId;
    readonly sourceWorkflowRunId?: WorkflowRunId;
    readonly sourceEvidenceManifestId?: EvidenceManifestId;
    readonly capturedAt: number;
    readonly modelIdentity?: MemoryModelIdentity;
    readonly confidence: number;
    readonly sensitivity: MemorySensitivity;
    readonly captureRationale?: string;
}
export interface MemoryValidityInterval {
    readonly validFrom: number;
    readonly validUntil?: number;
}
export interface MemoryRetentionHint {
    readonly policyKey: string;
    readonly retainUntil?: number;
    readonly notes?: string;
}
export interface MemoryRecord {
    readonly id: MemoryId;
    readonly schemaVersion: "1";
    readonly scope: MemoryScope;
    readonly type: MemoryType;
    readonly body: string;
    readonly payload?: MemoryStructuredPayload;
    readonly provenance: MemoryProvenance;
    readonly validity: MemoryValidityInterval;
    readonly status: MemoryStatus;
    readonly pinned: boolean;
    readonly staleReason?: string;
    readonly retentionHint?: MemoryRetentionHint;
    readonly tags: readonly string[];
    readonly createdAt: number;
    readonly updatedAt: number;
}
export type MemoryStructuredPayload = {
    readonly kind: "string-list";
    readonly items: readonly string[];
} | {
    readonly kind: "key-value";
    readonly entries: readonly {
        readonly key: string;
        readonly value: string;
    }[];
};
export type MemoryStructuredPayloadKind = MemoryStructuredPayload["kind"];
export declare const MEMORY_STRUCTURED_PAYLOAD_KINDS: readonly MemoryStructuredPayloadKind[];
export interface MemoryEdge {
    readonly id: MemoryEdgeId;
    readonly schemaVersion: "1";
    readonly fromMemoryId: MemoryId;
    readonly toMemoryId: MemoryId;
    readonly kind: MemoryEdgeKind;
    readonly createdAt: number;
    readonly confidence?: number;
    readonly provenanceSummary?: string;
}
//# sourceMappingURL=memory-records.d.ts.map