export interface QualityIntelligenceStageCancellationHandle {
    readonly signal: AbortSignal;
    readonly cancel: (reason?: string) => void;
    readonly dispose: () => void;
}
/**
 * Compose a parent cancellation signal with a freshly minted stage controller.
 * If the parent is already aborted, the returned signal is aborted immediately.
 * The handle's `dispose()` MUST be called once the stage finishes so the parent
 * listener is removed (otherwise long-running runs leak DOM listeners across
 * stages on the same parent signal).
 */
export declare function composeStageCancellation(parent: AbortSignal | undefined): QualityIntelligenceStageCancellationHandle;
/**
 * Returns true when the supplied signal has been aborted. Pure helper around
 * the standard DOM property so the run entries do not sprinkle the property
 * access at every cooperative cancellation check.
 */
export declare function isCancelled(signal: AbortSignal | undefined): boolean;
//# sourceMappingURL=cancellation.d.ts.map