import type { MemoryAuditActionKind, MemoryAuditRecordId, MemoryEdgeId, MemoryEdgeKind, MemoryId, MemoryProposalId, MemoryReviewerId, MemoryScope, MemorySensitivity, MemoryStatus, MemoryType } from "./memory.js";
import type { MemoryProvenance, MemoryRetentionHint, MemoryStructuredPayload, MemoryValidityInterval } from "./memory-records.js";
export interface MemoryProposal {
    readonly schemaVersion: "1";
    readonly proposalId: MemoryProposalId;
    readonly proposedAt: number;
    readonly scope: MemoryScope;
    readonly type: MemoryType;
    readonly body: string;
    readonly payload?: MemoryStructuredPayload;
    readonly tags: readonly string[];
    readonly provenance: MemoryProvenance;
    readonly validity: MemoryValidityInterval;
    readonly retentionHint?: MemoryRetentionHint;
    readonly initialStatus: "proposed";
    readonly captureReason?: string;
}
export interface MemoryAcceptance {
    readonly schemaVersion: "1";
    readonly proposalId: MemoryProposalId;
    readonly mintedMemoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly acceptedAt: number;
    readonly bodyOverride?: string;
    readonly sensitivityOverride?: MemorySensitivity;
    readonly validityOverride?: MemoryValidityInterval;
    readonly reviewerNote?: string;
}
export interface MemoryRejection {
    readonly schemaVersion: "1";
    readonly proposalId: MemoryProposalId;
    readonly reviewerId: MemoryReviewerId;
    readonly rejectedAt: number;
    readonly reason: string;
}
export interface MemoryUpdate {
    readonly schemaVersion: "1";
    readonly memoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly updatedAt: number;
    readonly bodyPatch?: string;
    readonly payloadPatch?: MemoryStructuredPayload;
    readonly tagsPatch?: readonly string[];
    readonly validityPatch?: MemoryValidityInterval;
    readonly sensitivityPatch?: MemorySensitivity;
    readonly retentionHintPatch?: MemoryRetentionHint;
    readonly reviewerNote?: string;
}
export interface MemorySupersession {
    readonly schemaVersion: "1";
    readonly oldMemoryId: MemoryId;
    readonly newMemoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly supersededAt: number;
    readonly reason: string;
    readonly edgeKind: "supersedes";
}
export interface MemoryPin {
    readonly schemaVersion: "1";
    readonly memoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly pinnedAt: number;
    readonly reason?: string;
}
export interface MemoryUnpin {
    readonly schemaVersion: "1";
    readonly memoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly unpinnedAt: number;
    readonly reason?: string;
}
export interface MemoryArchive {
    readonly schemaVersion: "1";
    readonly memoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly archivedAt: number;
    readonly reason?: string;
}
export interface MemoryForget {
    readonly schemaVersion: "1";
    readonly memoryId: MemoryId;
    readonly reviewerId: MemoryReviewerId;
    readonly forgottenAt: number;
    readonly reason: string;
    readonly userAcknowledgedDestructive: true;
}
export interface MemoryRetrievalRequest {
    readonly schemaVersion: "1";
    readonly requestedAt: number;
    readonly scopes: readonly MemoryScope[];
    readonly typeFilter?: readonly MemoryType[];
    readonly statusFilter?: readonly MemoryStatus[];
    readonly textQuery?: string;
    readonly tagsFilter?: readonly string[];
    readonly maxResults?: number;
    readonly maxBodyChars?: number;
    readonly includeArchived?: boolean;
    readonly includeSuperseded?: boolean;
}
export type MemoryAuditAction = {
    readonly kind: "proposed";
    readonly proposalId: MemoryProposalId;
    readonly scope: MemoryScope;
} | {
    readonly kind: "accepted";
    readonly proposalId: MemoryProposalId;
    readonly memoryId: MemoryId;
    readonly scope: MemoryScope;
} | {
    readonly kind: "rejected";
    readonly proposalId: MemoryProposalId;
    readonly reason: string;
} | {
    readonly kind: "updated";
    readonly memoryId: MemoryId;
    readonly fieldsChanged: readonly MemoryUpdateField[];
} | {
    readonly kind: "superseded";
    readonly oldMemoryId: MemoryId;
    readonly newMemoryId: MemoryId;
    readonly edgeId: MemoryEdgeId;
    readonly edgeKind: MemoryEdgeKind;
} | {
    readonly kind: "pinned";
    readonly memoryId: MemoryId;
} | {
    readonly kind: "unpinned";
    readonly memoryId: MemoryId;
} | {
    readonly kind: "archived";
    readonly memoryId: MemoryId;
} | {
    readonly kind: "forgotten";
    readonly memoryId: MemoryId;
    readonly scope: MemoryScope;
    readonly reason: string;
} | {
    readonly kind: "retrieved";
    readonly scopes: readonly MemoryScope[];
    readonly matchedMemoryIds: readonly MemoryId[];
};
export type MemoryUpdateField = "body" | "payload" | "tags" | "validity" | "sensitivity" | "retentionHint";
export declare const MEMORY_UPDATE_FIELDS: readonly MemoryUpdateField[];
export type MemoryAuditInitiatorSurface = "memory-center" | "conversation-center" | "workflow" | "consolidation" | "retention" | "system";
export declare const MEMORY_AUDIT_INITIATOR_SURFACES: readonly MemoryAuditInitiatorSurface[];
export interface MemoryAuditRecord {
    readonly id: MemoryAuditRecordId;
    readonly schemaVersion: "1";
    readonly actionKind: MemoryAuditActionKind;
    readonly action: MemoryAuditAction;
    readonly initiatorSurface: MemoryAuditInitiatorSurface;
    readonly initiatorReviewerId?: MemoryReviewerId;
    readonly occurredAt: number;
    readonly summary: string;
}
//# sourceMappingURL=memory-operations.d.ts.map