import { $PromiseType } from "../typings/$types.js"; export interface $AborterWrapper { wrapAsync(task: R): Promise<$PromiseType>; wrapAsyncRunner(task: (...args: ARGS) => R): (...args: ARGS) => Promise<$PromiseType>; wrapAsyncIterator(aIterator: AsyncIterableIterator): AsyncGenerator; wrapAsyncIteratorReturn(aIterator: AsyncGenerator): Promise; } export interface $Aborter extends $AborterWrapper { hasLabel(label: $Aborter.Label): boolean; wrapAsync(task: R, label?: $Aborter.Label): Promise<$PromiseType>; wrapAsyncRunner(task: (...args: ARGS) => R, label?: symbol): (...args: ARGS) => Promise<$PromiseType>; wrapAsyncIterator(aIterator: AsyncIterableIterator): AsyncGenerator; wrapAsyncIteratorReturn(aIterator: AsyncGenerator): Promise; readonly abortReason?: REASON; readonly isAborted: boolean; afterAborted: Promise; abortedPromise: Promise; /** * @param reason */ abort(reason?: REASON): void; } export declare namespace $Aborter { type Label = symbol | string | number; }