import { Observable } from 'rxjs';
import { VariableCommunicator, VariableValue } from '../communication';
import { VariableState } from '../communication/variable/variable-state';
export declare class PerViewVariableCommunicator implements VariableCommunicator {
    private _rawVariableCommunicator;
    private observers;
    private variableValuesChangedSubscriptions;
    private variableStatesChangedSubscription;
    private alarmSubscription;
    constructor(variableCommunicator: VariableCommunicator);
    openVariable(variableName: string, appId: string): Observable<VariableValue>;
    openVariables(variableNames: Array<string>, appId?: string): Observable<Array<VariableValue>>;
    write(variableName: string, value: any): Observable<VariableValue>;
    writeWordByBit(variableName: string, index: number, value: number): Observable<VariableValue>;
    requestVirtualDeviceState(): Observable<void>;
    subscribeVariableState(variableName: string): Observable<VariableState>;
    subscribeVariableStates(variableNames: string[]): Observable<Array<VariableState>>;
    subscribeUserDeviceAlarms(appId?: string): Observable<VariableState[]>;
    dispose(): void;
}
