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 {};