import { ChangeDetectorRef, NgZone, OnDestroy, OnInit } from '@angular/core';
import { AlertController } from '@ionic/angular';
import { EditableValueDataStreamInterface } from '@iotize/tap/data';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { CurrentDeviceService } from '../current-device.service';
import * as i0 from "@angular/core";
export declare class TapValueEditorContainerComponent implements OnInit, OnDestroy {
    private alertDialog;
    private tapService;
    private changeDetectorRef;
    private ngZone;
    set variable(v: EditableValueDataStreamInterface<unknown, any> | undefined);
    /**
     * Show refresh button
     */
    showRefreshButton: boolean;
    /**
     * Show submit button
     */
    showSubmitButton: boolean;
    /**
     * Show edit button
     */
    showEditButton: boolean;
    /**
     * Enable edition mode
     */
    editModeChange: BehaviorSubject<boolean>;
    loadingChange: BehaviorSubject<boolean>;
    pendingChange: BehaviorSubject<boolean>;
    /**
     * Error to display
     */
    error?: Error;
    lines: string;
    pendingSubmitValue?: any;
    valueToSubmit?: any;
    lastReadValue?: any;
    private variableChange;
    variableValuesStream: Observable<any>;
    forceValueChange: Subject<any>;
    valueToDisplay: Observable<any>;
    private pendingCallManager;
    private destroyed;
    constructor(alertDialog: AlertController, tapService: CurrentDeviceService, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone);
    ngOnInit(): void;
    submitValue(): void;
    notifyValueChange(newValue: any): Promise<void>;
    openErrorDialog(error: Error): Promise<void>;
    explainWaitForSubmit(): Promise<void>;
    private _submitValue;
    refreshValue(): Promise<void>;
    enableEditMode(): Promise<void>;
    private startAction;
    ngOnDestroy(): void;
    cancelEdit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TapValueEditorContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TapValueEditorContainerComponent, "tap-value-editor-container", never, { "variable": "variable"; "showRefreshButton": "showRefreshButton"; "showSubmitButton": "showSubmitButton"; "showEditButton": "showEditButton"; "error": "error"; "lines": "lines"; }, {}, never, ["*"]>;
}
