import { Observable, Subject } from 'rxjs';
import { VariableMonitor, VariableMonitorOptions, VariableMonitorEvent, VariableMonitorEventType } from './variable-monitor.interface';
/**
 * Monitor implementation for a variable thanks to bundle resource
 */
export declare class BundleVariableMonitor<DataType> implements VariableMonitor<DataType> {
    _previousValue?: DataType;
    _values?: Subject<DataType>;
    _events?: Subject<VariableMonitorEvent>;
    _options: VariableMonitorOptions;
    private state;
    constructor();
    start(options?: VariableMonitorOptions): this;
    isStarted(): boolean;
    pause(): this;
    stop(): this;
    values(): Observable<DataType>;
    events(): Observable<VariableMonitorEvent>;
    notifyNewValue(data: DataType): void;
    protected onValueChanged(data: DataType): void;
    protected valueHasChanged(newValue: DataType): boolean;
    protected _emit(type: VariableMonitorEventType): void;
}
