export type HarnerySinkEdgeKind = "primary" | "diagnostic" | "fallback"; export type HarnerySinkRecordOrigin = "structured-log" | "raw-process" | "cli-emission"; export type HarneryCapturedStream = "stdout" | "stderr"; export interface HarnerySinkRecord { origin: HarnerySinkRecordOrigin; payload: T; } export interface HarnerySinkDelivery extends HarnerySinkRecord { entry_sink_id: string; sink_id: string; route: "entry" | HarnerySinkEdgeKind; source_sink_id?: string; } export interface HarnerySink { id: string; deliver(delivery: HarnerySinkDelivery): void | Promise; emits_stream?: HarneryCapturedStream; captures?: { origin: HarneryCapturedStream | "cli-emission"; origin_sink_id?: string; }; } export interface HarnerySinkEdge { from: string; to: string; kind: HarnerySinkEdgeKind; } export type HarnerySinkGraphErrorCode = "duplicate_sink" | "invalid_sink" | "unknown_sink" | "duplicate_edge" | "self_edge" | "cycle" | "cli_emission_capture" | "capture_origin_invalid" | "capture_loop" | "fanout_limit" | "graph_limit"; export declare class HarnerySinkGraphError extends Error { readonly code: HarnerySinkGraphErrorCode; constructor(code: HarnerySinkGraphErrorCode, message: string); } export type HarnerySinkDeliveryFailureCode = "sink_delivery_failed" | "delivery_budget_exhausted"; export declare class HarnerySinkDeliveryError extends Error { readonly code: HarnerySinkDeliveryFailureCode; readonly sink_id: string; readonly cause?: unknown | undefined; constructor(code: HarnerySinkDeliveryFailureCode, sink_id: string, message: string, cause?: unknown | undefined); } export interface HarnerySinkDeliveryFailure { code: HarnerySinkDeliveryFailureCode; sink_id: string; route: HarnerySinkDelivery["route"]; error: HarnerySinkDeliveryError; } export interface HarnerySinkDeliveryResult { attempted: number; delivered: readonly string[]; failures: readonly HarnerySinkDeliveryFailure[]; truncated: boolean; } export interface HarnerySinkGraphOptions { max_sinks?: number; max_edges?: number; max_fanout?: number; max_deliveries?: number; } export declare class HarnerySinkGraph { #private; readonly sinks: readonly Readonly[]; readonly edges: readonly Readonly[]; constructor(sinks: readonly HarnerySink[], edges: readonly HarnerySinkEdge[], options?: HarnerySinkGraphOptions); deliver(entrySinkId: string, record: HarnerySinkRecord): Promise; } //# sourceMappingURL=sink-graph.d.ts.map