import { Logger, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { EventBus } from '@nestjs/cqrs';
import { Subscription } from 'rxjs';
export declare abstract class ChannelService<TConfig extends object, Togglable extends boolean = false> implements OnModuleInit, OnModuleDestroy {
    protected readonly eventBus: EventBus;
    private readonly initialState?;
    private readonly initialConfig?;
    abstract readonly togglable: Togglable;
    abstract readonly name: string;
    protected readonly subscriptions: Subscription[];
    protected logger: Logger;
    private readonly state;
    protected readonly onEnabledChanged$: import("rxjs").Observable<boolean>;
    protected readonly onConfigChanged$: import("rxjs").Observable<TConfig>;
    constructor(eventBus: EventBus, initialState?: boolean | undefined, initialConfig?: TConfig | undefined);
    onModuleInit(): void;
    onModuleDestroy(): void;
    getConfig(): TConfig | undefined;
    setConfig(config: TConfig): void;
    setEnabled(enabled: boolean): void;
    get isEnabled(): boolean;
    closeSubscriptions(): void;
}
//# sourceMappingURL=channel.service.d.ts.map