/**
 * DO NOT EDIT
 * This file has been generated from file assets\schema\v1\tap-config.json
 */
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "semanticVersion".
 */
export declare type SemanticVersion = string;
export declare type TargetConfig = TapnpassTargetConfig | MCUTargetConfig;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SerialSettings.PhysicalPort".
 */
export declare type PhysicalPort = "NONE" | "RS232" | "USB" | "AUTO" | "RS485" | "RS485_WITH_SIGNAL_DIRECTION";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SerialSettings.StopBits".
 */
export declare type StopBit = "ONE" | "ONE_AND_HALF" | "TWO";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SerialSettings.BitParity".
 */
export declare type BitParity = "NONE" | "ODD" | "EVEN";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SerialSettings.DataBits".
 */
export declare type SerialSettingsDataBits = "_7" | "_8" | "_9";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SerialSettings.HandshakeDelimiter".
 */
export declare type HandshakeDelimiter = "NONE" | "CR" | "LF" | "CR_LF";
/**
 * Type of handshake management
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SerialSettings.HardwareFlowControl".
 */
export declare type Handshake = "NONE" | "RTS" | "CTS" | "RTS_CTS";
/**
 * Unsigned integer on 16 bytes
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "uint16".
 */
export declare type Uint16 = number;
export declare type MCUTargetProtocolConfig = SWDProtocolConfig | NoneProtocolConfig | S3PProtocolConfig | ModbusProtocolConfig | ModbusTcpProtocolConfig | DirectIOProtocolConfig | SerialProtocolConfig | GPIOProtocolConfig | CustomProtocolConfig | CanProtocolConfig;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "S3PModeConfig".
 */
export declare type S3PModeConfig = "INDEXED" | "EMULATION";
/**
 * Unsigned integer on 8 bytes
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "uint8".
 */
export declare type Uint8 = number;
/**
 * Default slave address for Modbus TCP protocol
 */
export declare type DefaultSlaveAddress = string;
/**
 * Port for Modbus TCP protocol
 */
export declare type Port = number;
/**
 * Timeout for Modbus TCP protocol
 */
export declare type Timeout = number;
/**
 * First register address (0 or 1)
 */
export declare type FirstRegisterAddress = number;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "hexString".
 */
export declare type HexString = string | Uint8Array;
export declare type CanModeConfig = "NORMAL" | "NO_ACK" | "LISTEN";
export declare type CanFilterConfig = "SINGLE" | "DUAL";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "HostProtocol".
 */
export declare type HostProtocolConfig = "NFC" | "BLUETOOTH" | "GSM" | "USB_RLINK" | "USB_CMISIS_DAP" | "LORA" | "WIFI" | "BLE" | "UART" | "MQTT" | "WEBSOCKET" | "SLAVE_SERVER";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "NfcPairingModeConfig".
 */
export declare type NfcPairingModeConfig = "NO" | "MANDATORY" | "MANDATORY_FOR_LOGIN";
/**
 * MQTT broker certificate
 */
export declare type BrokerCertificate = string | Uint8Array;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "NfcConnectionPriority".
 */
export declare type NfcConnectionPriorityConfig = "NFC_PRIORITY" | "NFC_NON_PRIORITY";
/**
 * This option has been moved. Use wireless.options.pairing option instead
 */
export declare type NfcPairingModeConfig1 = NfcPairingModeConfig;
/**
 * IP V4
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "IPV4Address".
 */
export declare type IPV4Address = string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "WifiKeyVisibility".
 */
export declare type WifiKeyVisibility = "VISIBLE" | "HIDDEN";
/**
 * IP V4 mask
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "IPV4AddressMask".
 */
export declare type IPV4AddressMask = string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "WifiMode".
 */
export declare type NetworkModeConfig = "PEER_TO_PEER" | "NETWORK";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "WifiProtocol".
 */
export declare type WifiProtocol = "B" | "G" | "N";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "WifiSSIDVisibility".
 */
export declare type WifiSSIDVisibility = "VISIBLE" | "HIDDEN_FROM_SCAN" | "HIDDEN";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SlaveServerConfig".
 */
export declare type SlaveServerConfig = SlaveServerModbusTcpConfig | SlaveServerModbusRtuConfig | SlaveServerSpiConfig | SlaveServerCanConfig;
/**
 * First register address (0 or 1)
 */
export declare type FirstRegisterAddress1 = number;
/**
 * Application name (name will be broadcast with BLE or WiFi)
 */
export declare type ApplicationName = string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "AppPathType".
 */
export declare type AppPathType = "PRIMER_CLOUD_WEB_APP_URL" | "URL" | "ANDROID_APP_ID" | "PRIMER_CLOUD_CONFIG_URL" | "AAR_2";
/**
 * Application url loaded by Tap Manager
 */
export declare type ApplicationUrl = string;
export declare type UniversalLink = string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "CloudPlatform".
 */
export declare type CloudPlatformKey = "CUSTOM" | "IOTIZE" | "IBM_BLUEMIX" | "MICROSOFT_AZURE" | "AMAZON_AWS";
/**
 * Unsigned integer on 32 bytes
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "uint32".
 */
export declare type Uint32 = number;
/**
 * Device private key. This key is private and must not be shared.
 */
export declare type DevicePrivateKey = string | Uint8Array;
export declare type DevicePublicKey = string | Uint8Array;
/**
 * Public key certificate that identifies a root certificate authority (CA)
 */
export declare type RootCertificate = string | Uint8Array;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "LowPowerOptimizationLevel".
 */
export declare type LowPowerOptimizationLevelConfig = "NO" | "STANDBY" | "SHUTDOWN";
export declare type EnableMaxWakeUpTime = boolean;
/**
 * URL of the NTP server for retrieving Universal Coordinated Time. (UTC)
 */
export declare type NTPServerUrl = string;
/**
 * Time zone
 * Expecting a POSIX-style TZ string
 * Blank string means revert to default Universal Time = 'UTC0'
 * see https://www.iana.org/time-zones for more information
 */
export declare type TimeZone = string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "userKey".
 */
export declare type UserKey = HexString & any;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SpecialUsername".
 */
export declare type SpecialUsernameConfig = "admin" | "supervisor";
/**
 * Session lifetime in seconds
 */
export declare type SessionLifetime = number;
export declare type ProfileSalt = number;
export declare type ProfileId = number;
export declare type ProfileSalt1 = number;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "profile".
 */
export declare type ProfileConfig = UserConfig & {
    lifeTime?: SessionLifetime1;
    users?: UserConfig[];
    [k: string]: any;
};
/**
 * Session lifetime in seconds
 */
export declare type SessionLifetime1 = number;
export declare type BundleName = string;
export declare type BundleId = number;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SpecialFeature".
 */
export declare type SpecialFeatureConfig = "SWD_DIRECT_ACCESS" | "SERIAL_ACCESS" | "MODBUS_DIRECT_ACCESS" | "TAPNPASS_CONTROL_ACCESS" | "SP_CODEEXEC_ACCESS";
export declare type VariableConfig = TargetVariableConfig | ModbusVariableConfig | InTapVariableConfig | GPIOVariableConfig;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetVariable".
 */
export declare type TargetVariableConfig = BaseVariableConfig & {
    dataType: VariableTypeDataConfig;
    domain: "TARGET";
    address: Address;
    [k: string]: any;
};
export declare type VariableId = number;
export declare type VariableName = string;
export declare type Unit = string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "VariableTypeConfig.Data".
 */
export declare type VariableTypeDataConfig = "BOOLEAN" | "INT8" | "INT16" | "INT32" | "UINT8" | "UINT16" | "UINT32" | "FLOAT32" | "ASCII";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "address".
 */
export declare type Address = number | string;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "ModbusVariable".
 */
export declare type ModbusVariableConfig = BaseVariableConfig & {
    modbusAddress: ModbusVariableAddress;
    domain?: "TARGET";
    dataType?: VariableTypeDataConfig;
    [k: string]: any;
};
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "InTapVariable".
 */
export declare type InTapVariableConfig = BaseVariableConfig & {
    domain: "IN_TAP_STATIC" | "IN_TAP_VOLATIL";
    dataType: VariableTypeDataConfig;
    value?: (HexString | number) | (HexString | number)[];
    [k: string]: any;
};
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "GPIOVariable".
 */
export declare type GPIOVariableConfig = BaseVariableConfig & {
    gpio: GPIOMappingConfig;
    [k: string]: any;
};
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "GPIOMapping".
 */
export declare type GPIOMappingConfig = "RST" | "TDI" | "TDO" | "SWDCK" | "SWDIO" | "SCL_FACTORYRST" | "EXT_A2" | "EXT_A3" | "EXT_A4" | "EXT_A5" | "EXT_A6" | "EXT_A7" | "EXT_A8" | "EXT_A9" | "EXT_A10" | "EXT_A11" | "EXT_B2" | "EXT_B3" | "EXT_B4" | "EXT_B5" | "EXT_B6" | "EXT_B7" | "EXT_B8" | "EXT_B9" | "EXT_B10" | "EXT_B11";
export declare type EnableMaxWakeUpTime1 = boolean;
export declare type EnableSCANAuthentification = boolean;
export declare type LockingFactoryResetWithLwm2M = boolean;
export declare type DisableLoginWithUID = boolean;
export declare type DisableHardwareFactoryReset = boolean;
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetProtocol".
 */
export declare type TargetProtocolConfig = "NONE" | "SWD" | "S3P" | "JTAG" | "MODBUS" | "GPIO" | "SERIAL" | "CUSTOM" | "CAN" | "MODBUS_TCP" | "LORA";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "VariableFormat".
 */
export declare type VariableFormatConfig = "_1_BIT" | "_8_BITS" | "_16_BITS" | "_32_BITS";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "VariableTypeConfig.Domain".
 */
export declare type VariableTypeConfigDomain = "IN_TAP_STATIC" | "IN_TAP_VOLATIL" | "GPIO" | "TARGET";
/**
 * This interface was referenced by `VariableTypeConfig`'s JSON-Schema
 * via the `definition` "Data".
 */
export declare type Data = "BOOLEAN" | "INT8" | "INT16" | "INT32" | "ASCII" | "FLOAT32" | "UINT8" | "UINT16" | "UINT32";
/**
 * This interface was referenced by `VariableTypeConfig`'s JSON-Schema
 * via the `definition` "Domain".
 */
export declare type Domain = "TARGET" | "GPIO" | "IN_TAP_STATIC" | "IN_TAP_VOLATIL";
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "Certificate".
 */
export declare type Certificate = string | Uint8Array;
/**
 * Signed integer on 8 bytes
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "int8".
 */
export declare type Int8 = number;
export interface TapConfiguratorConfig {
    meta?: TapConfiguratorOptions;
    config: TapConfig;
}
export interface TapConfiguratorOptions {
    version?: string;
    /**
     * Options for the configurator engine
     */
    options?: {
        /**
         * If set to true, configurator will not perform a factory reset before configuration. Values that are not written in this configuration will not be removed.
         */
        skipFactoryReset?: boolean;
        [k: string]: any;
    };
    [k: string]: any;
}
export interface TapConfig {
    version: SemanticVersion;
    configFormatVersion?: number;
    target?: TargetConfig;
    wireless?: WirelessConfig;
    slaveServer?: SlaveServerConfig;
    /**
     * Communication ports
     */
    ports?: {
        ethernet?: EthernetConfig;
    };
    application?: ApplicationConfig;
    jvm?: JvmConfig;
    cloud?: CloudConfig;
    tap?: TapOptions;
    data?: DataConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapnpassTargetConfig".
 */
export interface TapnpassTargetConfig {
    type: "TAPNPASS";
    firmwareVersion?: SemanticVersion;
    protocol: {
        config?: TapnpassProtocolConfigurationConfig;
    };
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapnpassProtocolConfigurationConfig".
 */
export interface TapnpassProtocolConfigurationConfig {
    modbus: Modbus;
    serial: Serial;
    usb: TapnpassProtocolConfigurationConfigUsb;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapnpassProtocolConfigurationConfig.Modbus".
 */
export interface Modbus {
    slave: number;
    offsetFirstRegister: boolean;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapnpassProtocolConfigurationConfig.Serial".
 */
export interface Serial {
    baudRate: number;
    identification: boolean;
    ledStatus: boolean;
    physicalPort: PhysicalPort;
    stopBits: StopBit;
    bitParity: BitParity;
    dataBits: SerialSettingsDataBits;
    handshakeDelimiter: HandshakeDelimiter;
    hardwareFlowControl: Handshake;
    timeout: number;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapnpassProtocolConfigurationConfig.Usb".
 */
export interface TapnpassProtocolConfigurationConfigUsb {
    aliases: TapnpassProtocolConfigurationConfigUsbAlias[];
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapnpassProtocolConfigurationConfig.Usb.Alias".
 */
export interface TapnpassProtocolConfigurationConfigUsbAlias {
    vid: Uint16;
    pid: Uint16;
    equ: number;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "MCUTargetConfig".
 */
export interface MCUTargetConfig {
    type: "MCU";
    firmwareVersion?: SemanticVersion;
    protocol: MCUTargetProtocolConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.SWDConfig".
 */
export interface SWDProtocolConfig {
    type: "SWD";
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.NoneConfig".
 */
export interface NoneProtocolConfig {
    type: "NONE";
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.S3PConfig".
 */
export interface S3PProtocolConfig {
    type: "S3P";
    config: S3PConfig;
}
export interface S3PConfig {
    mode: S3PModeConfig;
    delay: Uint8;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.ModbusConfig".
 */
export interface ModbusProtocolConfig {
    type: "MODBUS";
    config?: ModbusProtocolConfig1;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "ModbusConfig".
 */
export interface ModbusProtocolConfig1 {
    modbus: ModbusConfig;
    serial: SerialConfig;
    usb?: TapnpassProtocolConfigurationConfigUsb;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetSerialModbusConfigurationConfig.Modbus".
 */
export interface ModbusConfig {
    /**
     * Default slave address
     */
    slave: number;
    /**
     * True if first register address will be 1
     * False if first register address is 0
     */
    offsetFirstRegister: boolean;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetSerialModbusConfigurationConfig.Serial".
 */
export interface SerialConfig {
    baudRate: number;
    physicalPort?: PhysicalPort;
    stopBits: StopBit;
    bitParity: BitParity;
    dataBits: SerialSettingsDataBits;
    handshakeDelimiter: HandshakeDelimiter;
    hardwareFlowControl?: Handshake;
    timeout: number;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.ModbusTcpConfig".
 */
export interface ModbusTcpProtocolConfig {
    type: "MODBUS_TCP";
    config?: ModbusTcpConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "ModbusTcpConfig".
 */
export interface ModbusTcpConfig {
    modbus?: EthernetModbusConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "ModbusTcpModbusConfig".
 */
export interface EthernetModbusConfig {
    defaultSlaveAddress?: DefaultSlaveAddress;
    port?: Port;
    timeout?: Timeout;
    firstRegisterAddress?: FirstRegisterAddress;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.DirectIOConfig".
 */
export interface DirectIOProtocolConfig {
    type: "DIRECT_IO";
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.SerialConfig".
 */
export interface SerialProtocolConfig {
    type: "SERIAL";
    config?: {
        serial: SerialConfig;
        [k: string]: any;
    };
}
/**
 * Deprecated. Use DirectIO protocol instead.
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.GPIOConfig".
 */
export interface GPIOProtocolConfig {
    type: "GPIO";
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.CustomConfig".
 */
export interface CustomProtocolConfig {
    type: "CUSTOM";
    config?: HexString;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetConfig.Protocol.CanConfig".
 */
export interface CanProtocolConfig {
    type: "CAN";
    config?: CanConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "CanConfig".
 */
export interface CanConfig {
    /**
     * Frequency in kbps
     */
    frequency: number;
    mode: CanModeConfig;
    filter: CanFilterConfig;
    code: string | Uint8Array;
    mask: string | Uint8Array;
}
export interface WirelessConfig {
    options?: WirelessOptionsConfig;
    protocols?: WirelessProtocolsConfig;
}
export interface WirelessOptionsConfig {
    inactivityTimeout?: Uint8;
    authorizedProtocols?: HostProtocolConfig[];
    pairing?: WirelessPairingConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "WirelessPairingConfig".
 */
export interface WirelessPairingConfig {
    /**
     * Set to true if Tap should try to activate BLE pairing
     */
    blePairing?: boolean;
    nfcPairingMode?: NfcPairingModeConfig;
}
export interface WirelessProtocolsConfig {
    ble?: BleProtocolConfig;
    lora?: LoraProtocolConfig;
    mqtt?: MqttProtocolConfig;
    nfc?: NfcProtocolConfig;
    wifi?: WifiProtocolConfig;
    ethernet?: EthernetProtocolConfig;
}
export interface BleProtocolConfig {
    /**
     * @deprecated
     * True to require BLE pairing. Deprecated, use wireless.options.pairing option instead.
     */
    pairingMode?: boolean;
    [k: string]: any;
}
export interface LoraProtocolConfig {
    config?: LoraConfig;
    ids?: HexString;
    [k: string]: any;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "LoraConfig".
 */
export interface LoraConfig {
    classA: boolean;
    classB: boolean;
    classC: boolean;
    dataLoggingEnabled: boolean;
    singlePacketEnabled: boolean;
}
export interface MqttProtocolConfig {
    brokerCertificate?: BrokerCertificate;
    /**
     * You can either specify the broker hostname or protocol://hostname. If protocol is not specified, it will be deduce from configured port.
     */
    brokerHostname?: string;
    /**
     * Broker port. Default MQTT port are 1883 for non secure and 8883 to use with TLS.
     */
    brokerPort?: string;
    /**
     * MQTT client identifier.
     */
    clientId?: string;
    /**
     * Required only if your broker requires a username/password authentification
     */
    password?: string;
    /**
     * @deprecated
     * @deprecated This option is deprecated. Use request topic and response topic instead.
     */
    relayNetKey?: string;
    /**
     * @deprecated
     * @deprecated This option is deprecated. Use request topic and response topic instead.
     */
    topicPrefix?: string;
    /**
     * Topic used to send requests for LwM2M over MQTT. Tap will subscribe to this topic and wait for incomming LwM2M requests.
     */
    requestTopic?: string;
    /**
     * Topic used to send response for LwM2M over MQTT. Tap will publish LwM2M responses on this.
     */
    responseTopic?: string;
    /**
     * Required only if your broker requires a username/password authentification
     */
    username?: string;
}
export interface NfcProtocolConfig {
    autoLogProfileId?: Uint16;
    connectionPriority?: NfcConnectionPriorityConfig;
    pairingMode?: NfcPairingModeConfig1;
}
export interface WifiProtocolConfig {
    ip?: IPV4Address;
    gatewayIp?: IPV4Address;
    /**
     * WEP/WPA2 key of the Wi-Fi network access point
     */
    key?: string;
    keyVisibility?: WifiKeyVisibility;
    mask?: IPV4AddressMask;
    mode?: NetworkModeConfig;
    protocol?: WifiProtocol[];
    /**
     * Country code ISO 3166
     */
    countryCode?: number;
    /**
     * Wi-Fi SSID
     */
    ssid?: string;
    ssidVisibility?: WifiSSIDVisibility;
    txPower?: Uint8;
    dnsIp?: IPV4Address;
}
export interface EthernetProtocolConfig {
    dnsIp?: IPV4Address;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SlaveServerModbusTcpConfig".
 */
export interface SlaveServerModbusTcpConfig {
    type: "MODBUS_TCP";
    config: {
        firstRegisterAddress?: FirstRegisterAddress1;
        /**
         * Tcp port
         */
        port: number;
    };
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SlaveServerModbusRtuConfig".
 */
export interface SlaveServerModbusRtuConfig {
    type: "MODBUS_RTU";
    config: TapnpassProtocolConfigurationConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SlaveServerSpiConfig".
 */
export interface SlaveServerSpiConfig {
    type: "SPI";
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SlaveServerCanConfig".
 */
export interface SlaveServerCanConfig {
    type: "CAN";
    config: CanConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "EthernetConfig".
 */
export interface EthernetConfig {
    ip?: IPV4Address;
    ipMask?: IPV4AddressMask;
    gatewayIp?: IPV4Address;
}
/**
 * Options related to the application that communicates with this Tap
 *
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "ApplicationConfig".
 */
export interface ApplicationConfig {
    name?: ApplicationName;
    uri?: ApplicationUriConfig | ApplicationUrl;
    universalLink?: UniversalLink;
    /**
     * Product code. It can be used to identify which kind of target this Tap is linked to. It's used by multi tap configuration applications.
     */
    productCode?: string;
    data?: HexString;
}
export interface ApplicationUriConfig {
    type: AppPathType;
    value: string;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "JVMConfig".
 */
export interface JvmConfig {
    /**
     * JVM code size in bytes. If not set, code size will be deduced from actual code size.
     */
    codeSize?: number;
    /**
     * Compressed byte code content
     */
    code?: string | Uint8Array;
    /**
     * User profile id
     */
    profileId?: number;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "CloudConfig".
 */
export interface CloudConfig {
    platform?: CloudPlatformKey;
    dataLog?: {
        uploadPeriod?: Uint32;
        mqttPublishTopic?: string;
        mqttSubscribeTopic?: string;
    };
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TapOptions".
 */
export interface TapOptions {
    certificate?: {
        privateKey?: DevicePrivateKey;
        publicKey?: DevicePublicKey;
        rootKey?: RootCertificate;
    };
    powerOptimization?: LowPowerOptimizationLevelConfig;
    scram?: {
        hashIteration?: Uint16;
    };
    security?: SecurityOptionsConfig;
    time?: TapTimeConfig;
    autoRebootTimeout?: number;
    maxLowPowerTime?: number;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SecurityOptions".
 */
export interface SecurityOptionsConfig {
    maxWakeUpTimeActivated?: EnableMaxWakeUpTime;
    /**
     * true if scram is activated
     */
    scramActivated?: boolean;
    /**
     * true if login is done using the hash of the password instead of the password itself
     */
    hashPassword?: boolean;
    /**
     * true to disable factory reset using hardware
     */
    disableHardwareFactoryReset?: boolean;
    /**
     * true to disable login using UID (resource /1024//5)
     */
    disableLoginWithUID?: boolean;
    /**
     * true to disable factory reset using LwM2M resource
     */
    disableResourceFactoryReset?: boolean;
}
/**
 * Configure time zone and NTP server for your Tap
 */
export interface TapTimeConfig {
    ntpServer?: NTPServerUrl;
    zone?: TimeZone;
}
export interface DataConfig {
    profiles?: (SpecialProfileConfig | AnonymousProfileConfig | ProfileConfig)[];
    bundles?: BundleConfig[];
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "specialprofile".
 */
export interface SpecialProfileConfig {
    key?: UserKey;
    password?: string;
    username: SpecialUsernameConfig;
    lifeTime?: SessionLifetime;
    salt?: ProfileSalt;
    users?: UserConfig[];
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "user".
 */
export interface UserConfig {
    key?: UserKey;
    password?: string;
    /**
     * Username
     */
    username: string;
    id: ProfileId;
    salt?: ProfileSalt1;
    [k: string]: any;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "anonymousprofile".
 */
export interface AnonymousProfileConfig {
    username: "anonymous";
    [k: string]: any;
}
export interface BundleConfig {
    name?: BundleName;
    id: BundleId;
    dataLog?: {
        /**
         * Data log period acquisition in seconds
         */
        period: number;
        [k: string]: any;
    };
    features?: SpecialFeatureConfig[];
    variables?: VariableConfig[];
    acls?: AclMapConfig;
    [k: string]: any;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "BaseVariable".
 */
export interface BaseVariableConfig {
    id: VariableId;
    /**
     * Variable length (number of items) > 1 if it's an array
     */
    length?: number;
    meta?: {
        name?: VariableName;
        unit?: Unit;
    };
    rawMeta?: HexString;
    /**
     * Size (in bytes) reserved for variable meta data
     */
    metaDataLength?: number;
    [k: string]: any;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "ModbusVariableAddress".
 */
export interface ModbusVariableAddress {
    functionCode: number;
    slave: number;
    address: number;
}
export interface AclMapConfig {
    [k: string]: AclConfig;
}
export interface AclConfig {
    /**
     * Grant read right
     */
    read: boolean;
    /**
     * Grant write right
     */
    write: boolean;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "SecurityConfig".
 */
export interface SecurityConfig {
    maxWakeUpTimeActivated?: EnableMaxWakeUpTime1;
    scramActivated?: EnableSCANAuthentification;
    hashPassword?: boolean;
    disableHardwareFactoryReset?: LockingFactoryResetWithLwm2M;
    disableLoginWithUID?: DisableLoginWithUID;
    disableResourceFactoryReset?: DisableHardwareFactoryReset;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "TargetSerialModbusConfigurationConfig".
 */
export interface TargetSerialModbusConfigurationConfig {
    modbus: ModbusConfig;
    serial: SerialConfig;
}
/**
 * This interface was referenced by `TapConfiguratorConfig`'s JSON-Schema
 * via the `definition` "VariableTypeConfig".
 */
export interface VariableTypeConfig {
    domain: VariableTypeConfigDomain;
    data: VariableTypeDataConfig;
}
