import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';
import { ToastController } from '@ionic/angular';
import { CurrentDeviceService, PendingCallManager, TapConfigItem, TapInfoHolder } from '@iotize/ionic';
declare type ColorType = any;
export declare class TapConfigItemComponent<ValueType = any> implements OnInit, OnDestroy {
    private tapService;
    private toastController;
    focusOut: EventEmitter<number>;
    onSubmit: EventEmitter<{
        target: {
            value: string;
        };
    }>;
    pendingCallManager: PendingCallManager;
    params?: any[];
    set info(config: TapConfigItem<ValueType>);
    refresh: boolean;
    get info(): TapConfigItem<ValueType>;
    get hasButtons(): true | (() => Promise<any>) | undefined;
    get originalValue(): ValueType | undefined;
    private valueSubscription?;
    form: FormGroup;
    _config?: TapConfigItem<ValueType>;
    loading: boolean;
    error?: Error;
    placeholder: string;
    editMode: boolean;
    displayedValue: string;
    get field(): AbstractControl;
    get config(): TapConfigItem<ValueType>;
    get inputOptions(): {
        pattern?: RegExp | undefined;
        minLength?: number | undefined;
        maxLength?: number | undefined;
        min?: number | undefined;
        max?: number | undefined;
        type?: "number" | "password" | "select" | "text" | "toggle" | "radio" | undefined;
        options?: {
            key: any;
            text: string;
            icon?: string | undefined;
        }[] | undefined;
        multiple?: boolean | undefined;
    };
    get editable(): boolean | undefined;
    constructor(formBuilder: FormBuilder, tapService: CurrentDeviceService, toastController: ToastController);
    get pendingEditCall(): (() => Promise<any>) | undefined;
    ngOnInit(): void;
    initializeConfig(): void;
    setError(error: Error): void;
    ngOnDestroy(): void;
    close(): void;
    submit($event: any): void;
    private runCall;
    onValueClick(): void;
    explainPendingCall(): void;
    onFocusOut(): void;
    isEdited(): boolean;
    cancelEdit($event?: any): void;
    getFieldValue(): any;
    showToast(msg: string, color?: ColorType): Promise<void>;
    refreshValue(): Promise<TapInfoHolder<unknown>>;
    private _execRefreshKey;
    restaureValue(): void;
    setFieldValue(value: ValueType | undefined): void;
    updateDisplayValue(): void;
    setDisplayValue(value: ValueType): string;
    getSelectedOption(value: ValueType): {
        key: any;
        text: string;
        icon?: string | undefined;
    } | undefined;
    get selectedOption(): {
        key: any;
        text: string;
        icon?: string | undefined;
    } | undefined;
    fetchValueIfRequired(): void;
    fetchValue(): void;
}
export {};
