import { AsyncEmitter } from "../events";
type Constructor<T = object> = new (...args: any[]) => T;
export declare abstract class CancelableEmitter extends AsyncEmitter {
    static create<T>(this: Constructor<T>, ...args: unknown[]): T;
    abstract cancel(error: Error): void;
}
export declare abstract class RunnableEmitter extends CancelableEmitter {
    abstract run(...args: unknown[]): Promise<void>;
}
export {};
