import { Tap } from '@iotize/tap';
import { TargetSerialModbusProtocolConfiguration, TargetS3PProtocolConfiguration } from '@iotize/tap/service/impl/target';
import { BehaviorSubject, Subject } from 'rxjs';
import { CurrentDeviceService } from '@iotize/ionic';
export declare class ProtocolConfigurationService {
    tapService: CurrentDeviceService;
    protected _s3pProtocolConfiguration: TargetS3PProtocolConfiguration;
    protected _defaultSettings: TargetSerialModbusProtocolConfiguration;
    pendingSettings$: BehaviorSubject<TargetSerialModbusProtocolConfiguration>;
    loading: BehaviorSubject<boolean>;
    set pendingSettings(settings: TargetSerialModbusProtocolConfiguration);
    get pendingSettings(): TargetSerialModbusProtocolConfiguration;
    private _tapSettings?;
    errors: Subject<Error>;
    get tap(): Tap;
    constructor(tapService: CurrentDeviceService);
    refresh(): Promise<void>;
    applyChanges(temporary?: boolean, reconnectTarget?: boolean): Promise<void>;
    discardChanges(): void;
    hasChanges(): boolean;
    private setSerialModbusConfiguration;
    reconnectTarget(): Promise<void>;
    onError(error: Error): void;
}
