import { EventEmitter } from "../utils/EventEmitter";
export interface IAbortable {
abort(): any;
}
export type SetAbortableFn = (a: IAbortable) => typeof a;
export type SetProgressFn
= (progress: P) => void;
type RunFn = (setAbortable: SetAbortableFn, setProgress: SetProgressFn) => T;
export declare class AbortableOperation extends EventEmitter<{
change: keyof AbortableOperation;
}> implements IAbortable {
readonly result: T;
private _abortable?;
private _progress?;
constructor(run: RunFn);
get progress(): P | undefined;
abort(): void;
}
export {};