import type { WorkItemAttachment } from './attachments.js'; /** * What a comment carries. Its own module because it exists for one reason a * plain attachment listing does not: a parked workflow Wait resumes on an * operator's reply, and the files attached to that reply are half the answer. */ /** Just enough of an attachment row to reference it: no filename, no on-disk * path. What a surface outside the store is given to point at the bytes. */ export type WorkItemAttachmentHandle = Pick; /** The handles for one comment's own attachments, oldest first. Tombstoning a * comment leaves its rows in place, so a run resumed by a reply still sees * what was attached to it. */ export declare function listCommentAttachments(commentId: string): WorkItemAttachmentHandle[]; export type TodoAttachmentListener = (attachment: WorkItemAttachment) => void; export declare function setTodoAttachmentListener(listener: TodoAttachmentListener | null): void; /** Announce a committed attachment and hand it straight back, so the store can * announce on its way out. A reply arrives as a comment and THEN its uploads, * one request each, so this is the only signal that says more of it landed. * Best-effort like the comment listener: a subscriber that throws must never * break the write it observed. */ export declare function announceAttachment(attachment: WorkItemAttachment): WorkItemAttachment; //# sourceMappingURL=comment-attachments.d.ts.map