import type { AbortOrigin, TraceSink } from './trace/index.js'; export interface ChildAbortedEvent { parentId: string; childId: string; reason?: unknown; } export type ChildAbortedListener = (event: ChildAbortedEvent) => void; export declare class AbortGraph { private readonly nodes; private traceWriter; constructor(traceWriter?: TraceSink); setTraceWriter(writer: TraceSink | undefined): void; register(id: string, controller: AbortController): void; rearm(id: string, controller: AbortController): void; has(id: string): boolean; getController(id: string): AbortController | undefined; childrenOf(id: string): string[]; isCascading(id: string): boolean; linkChild(parentId: string, childId: string): void; onChildAborted(parentId: string, listener: ChildAbortedListener): () => void; abort(id: string, reason?: unknown, origin?: AbortOrigin): void; dispose(id: string): void; }