import { OnDestroy } from '@angular/core';
import { Observable, Subscription } from 'rxjs';
export declare abstract class Command<P = undefined, R = unknown> {
    abstract execute(params: P): Observable<R>;
}
export declare enum CommandStrategy {
    Parallel = 0,
    Queue = 1,
    CancelPrevious = 2,
    ErrorPrevious = 3
}
export declare class CommandService implements OnDestroy {
    protected subscriptions: Subscription;
    constructor();
    create<P = undefined, R = unknown>(commandFactory: (command: P) => Observable<any>, options?: {
        strategy?: CommandStrategy;
    }): Command<P, R>;
    ngOnDestroy(): void;
}
