import type { PersistDeliveredInput } from './report-carry.js'; import type { DeliveredFullReport } from './situation-report.js'; /** Narrow persistence port so startup wiring stays independent of the concrete file implementation. */ export interface ReportCarryDeliveryStore { persistDelivered(input: PersistDeliveredInput): void; } export interface TelegramReportCarryDeliveryOptions { reportChatId: string; carryStore: ReportCarryDeliveryStore; } /** The Telegram boundary used by detached operator reports. */ export interface TelegramSystemMessageSender { sendSystemMessage(chatId: string, text: string, deliveryId?: string): Promise; } export interface TelegramReportOutputOptions { reportChatId: string; telegramSender: TelegramSystemMessageSender; } /** * Binds the host-authorized Telegram destination to the operator output surface. * Prepared full reports retain their delivery identity; legacy digest sends receive a new one. */ export declare function createTelegramReportOutput({ reportChatId, telegramSender, }: TelegramReportOutputOptions): { target: { source: 'telegram'; channelId: string; }; send(text: string, deliveryId?: string): Promise; }; /** * Binds an already-authorized Telegram report destination to the durable carry store. * The returned callback receives only the successful full-delivery artifact from the reporter. */ export declare function createTelegramReportCarryDelivery({ reportChatId, carryStore, }: TelegramReportCarryDeliveryOptions): (report: DeliveredFullReport) => void; //# sourceMappingURL=report-carry-delivery.d.ts.map