import { DisposableStore, IDisposable } from "./lifecycle.js"; export interface CancellationToken { /** * A flag signalling is cancellation has been requested. */ readonly isCancellationRequested: boolean; /** * An event which fires when cancellation is requested. This event * only ever fires `once` as cancellation can only happen once. Listeners * that are registered after cancellation will be called (next event loop run), * but also only once. * * @event */ readonly onCancellationRequested: (listener: (e: void) => unknown, thisArgs?: unknown, disposables?: IDisposable[]) => IDisposable; } export declare namespace CancellationToken { function isCancellationToken(thing: unknown): thing is CancellationToken; const None: Readonly; const Cancelled: Readonly; } export declare class CancellationTokenSource { private _token?; private _parentListener?; constructor(parent?: CancellationToken); get token(): CancellationToken; cancel(): void; dispose(cancel?: boolean): void; } export declare function cancelOnDispose(store: DisposableStore): CancellationToken; /** * A pool that aggregates multiple cancellation tokens. The pool's own token * (accessible via `pool.token`) is cancelled only after every token added * to the pool has been cancelled. Adding tokens after the pool token has * been cancelled has no effect. */ export declare class CancellationTokenPool { private readonly _source; private readonly _listeners; private _total; private _cancelled; private _isDone; get token(): CancellationToken; /** * Add a token to the pool. If the token is already cancelled it is counted * immediately. Tokens added after the pool token has been cancelled are ignored. */ add(token: CancellationToken): void; private _check; dispose(): void; }