import { TapResponse } from '@iotize/tap';
import { ExecutionContext, TapRequestFrame } from '@iotize/tap/client/api';
import { ConnectionStateChangeEvent } from '@iotize/tap/protocol/api';
export interface TapInfoHolder<T = any> {
    error?: Error;
    value?: T;
    loadDate?: Date;
}
export interface OnErrorCallback {
    onError(err: Error): void;
}
export interface OnTapEvent {
    onTapRequestError?: (event: OnTapEvent.TapRequestError) => void;
    onTapRequestUnauthorized?: (event: {
        request: ExecutionContext;
        response: TapResponse<any>;
    }) => void;
    onTapConnectionStateChange(newSate: ConnectionStateChangeEvent): void;
}
export declare namespace OnTapEvent {
    interface TapRequestError {
        request: TapRequestFrame;
        error: Error;
        response?: TapResponse<any>;
    }
}
export declare enum TapInfo {
    serialNumber = "serialNumber",
    modelName = "modelName",
    appName = "appName",
    appPath = "appPath",
    tapFirmwareVersion = "tapFirmwareVersion",
    configVersion = "configVersion",
    DataLogMaxPacketCount = "DataLogMaxPacketCount",
    DatalogAcquisitionRunning = "DatalogAcquisitionRunning",
    CloudEndpoint = "CloudEndpoint",
    DataLogPacketCount = "DataLogPacketCount",
    IsTargetConnected = "IsTargetConnected",
    CloudUploadPeriod = "CloudUploadPeriod",
    AdpStats = "AdpStats",
    AdpVersion = "AdpVersion",
    CloudKey = "CloudKey",
    availableHostProtocols = "availableHostProtocols",
    universalLink = "universalLink",
    androidApplicationRecord = "androidApplicationRecord",
    ProfileSessionLifeTime = "ProfileLifeTime",
    ProfileName = "ProfileName",
    DataLogClearPacketStore = "DataLogClearPacketStore",
    DataLogToggleAcquisition = "DataLogToggleAcquisition",
    BundleDatalogPeriod = "BundleDatalogPeriod",
    configPath = "configPath",
    authorizedHostProtocols = "authorizedHostProtocols",
    TargetProtocol = "TargetProtocol",
    HostProtocol = "HostProtocol",
    lockFactoryReset = "lockFactoryReset",
    lockOptions = "lockOptions",
    useEncryption = "useEncryption",
    SinglePacketInfo = "SinglePacketInfo",
    tapManufacturer = "tapManufacturer",
    protocolHostInactivityPeriod = "protocolHostInactivityPeriod",
    bleMacAddress = "bleMacAddress",
    WifiSSID = "WifiSSID",
    WifiKey = "wifiPassword",
    isHostProtocolAuthorized = "isHostProtocolAuthorized",
    isLoginWithUIDEnabled = "isLoginWithUIDEnabled",
    isLWM2MFactoryResetEnabled = "isLWM2MFactoryResetEnabled",
    hashPassword = "hashPassword",
    scramIterationNumber = "scramIterationNumber",
    parentGroupId = "parentGroupId",
    bundleName = "bundleName",
    variableMetaData = "variableMetaData",
    profilePassword = "profilePassword",
    NetworkInfraIp = "NetworkInfraIp",
    NetworkGatewayIp = "NetworkGatewayIp",
    WifiMode = "WifiMode",
    WifiHostname = "WifiHostname",
    NFCPairingMode = "NFCPairingMode",
    NFCConnectionPriority = "NFCConnectionPriority",
    MqttUsername = "MqttUsername",
    MqttClientId = "MqttClientId",
    MqttRelayNetKey = "MqttRelayNetKey",
    MqttBrokerHostname = "MqttBrokerHostname",
    MqttBrokerPort = "MqttBrokerPort",
    MqttPassword = "MqttPassword"
}
