import { Observable } from 'rxjs';
import { Logger } from '@nestjs/common';
import { BaseCommand } from '../commands';
export declare abstract class Strategy<Options = any> {
    protected options: Options;
    protected readonly name: string;
    protected readonly logger: Logger;
    protected constructor(options: Options);
    setOptions(options: Options): void;
    updateOption<K extends keyof Options>(key: K, value: Options[K]): void;
    updateOptions(options: Options): void;
    getOptions(): Options;
    clone(): this;
    abstract process<T>(observable: Observable<T>, command: BaseCommand, ...args: any[]): Observable<T>;
}
