import type { EvoPaths } from "./paths.ts"; import type { RecorderInboxEntry } from "./recorder/schema.ts"; import type { Proposal } from "./types.ts"; export type InboxKind = "unclassified" | "preference" | "request" | "note" | "task-local"; export type InboxStatus = "open" | "linked" | "materialized" | "fulfilled" | "dismissed" | "superseded"; export interface InboxLifecycleEvent { schemaVersion: 1; id: string; file: string; timestamp: string; kind: InboxKind; status: InboxStatus; reason: string; summary?: string; /** Exact user-authored durable instruction after preference classification. */ instruction?: string; proposalId?: string; bundleDigest?: string; sourceDigest?: string; payloadDeletedAt?: string; } export interface InboxLifecycleState extends InboxLifecycleEvent { initialized: boolean; } export interface InboxDecision { file: string; kind: "preference" | "request" | "note" | "task-local"; reason: string; instruction?: string; } export interface InboxGcResult { dryRun: boolean; files: string[]; } export declare function readInboxEntry(paths: EvoPaths, file: string): Promise; export declare function readInboxLifecycleStates(paths: EvoPaths): Promise>; export declare function initializeInboxLifecycle(paths: EvoPaths, file: string): Promise; export declare function applyInboxDecisions(paths: EvoPaths, decisions: readonly InboxDecision[], allowedFiles: ReadonlySet): Promise; export declare function linkProposalInbox(paths: EvoPaths, proposal: Proposal): Promise; export declare function settleProposalInbox(paths: EvoPaths, proposal: Proposal): Promise; export declare function resolveInboxEntry(paths: EvoPaths, file: string, reason: string, status?: "materialized" | "fulfilled" | "dismissed" | "superseded"): Promise; export declare function reopenProposalInbox(paths: EvoPaths, proposal: Proposal, reason: string): Promise; export declare function garbageCollectInbox(paths: EvoPaths, dryRun?: boolean): Promise; //# sourceMappingURL=inbox.d.ts.map