import { TapConfigSchema } from "@iotize/device-admin.js";
import { Page as AppGeneratorPage, TapAppGeneratorSchema, MonitoringDashboardPage, NotFoundPage, MenuItem, MonitoringPage, TapInfoPage, TapConnectionPage, ProtocolConfigurationPage, TapDevicePage, AboutPage, TapLoginPage, Theme, Color } from "../schema/appconfig";
import { IotizeConfigModel } from "@iotize/device-config.js/model";
import { ProjectConfig } from "./project-linker/definitions";
import { DotAccessor } from "@iotize/device-admin.js/configuration/dot-accessor";
export declare function createDefinitionsSchema(tapConfigSchema: TapConfigSchema): {
    "Color": {
        "oneOf": {
            "type": string;
        }[];
        "title": string;
    };
    "ColorTheme": {
        "title": string;
        "type": string;
        "required": string[];
        "properties": {
            "name": {
                "type": string;
            };
            "value": {
                "title": string;
                "$ref": string;
            };
            "tint": {
                "$ref": string;
            };
            "contrast": {
                "$ref": string;
            };
            "shade": {
                "$ref": string;
            };
        };
    };
    "ColorThemeList": {
        "title": string;
        "type": string;
        "items": {
            "$ref": string;
        };
    };
    "TapCommunicationProtocol": {
        "type": string;
        "enum": string[];
    };
    "MonitoringDashboardPage": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "type": string;
                    "title": string;
                    "const": string;
                };
                "profileName": {
                    "title": string;
                    "description": string;
                    "$ref": string;
                };
                "content": {
                    "$ref": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "SubMenuItem": {
        "title": string;
        "type": string;
        "required": string[];
        "properties": {
            "title": {
                "title": string;
                "type": string;
            };
            "url": {
                "title": string;
                "type": string;
            };
            "icon": {
                "title": string;
                "$ref": string;
            };
        };
    };
    "TapProfileName": {
        "type": string;
    };
    "page": {
        "type": string;
        "required": string[];
        "properties": {
            "enabled": {
                "title": string;
                "description": string;
                "type": string;
                "default": string;
            };
            "pageTitle": {
                "title": string;
                "type": string;
            };
            "path": {
                "title": string;
                "description": string;
                "type": string;
            };
            "projectPath": {
                "title": string;
                "description": string;
                "type": string;
            };
        };
    };
    "MenuItem": {
        "title": string;
        "type": string;
        "required": string[];
        "properties": {
            "title": {
                "title": string;
                "type": string;
            };
            "url": {
                "title": string;
                "type": string;
            };
            "icon": {
                "title": string;
                "$ref": string;
            };
            "children": {
                "title": string;
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
        };
    };
    "HorizontalLayout": {
        "type": string;
        "title": string;
        "required": string[];
        "properties": {
            "type": {
                "type": string;
                "const": string;
            };
            "elements": {
                "title": string;
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
        };
    };
    "ListLayout": {
        "type": string;
        "title": string;
        "required": string[];
        "properties": {
            "type": {
                "type": string;
                "const": string;
            };
            "items": {
                "type": string;
                "items": {
                    "type": string;
                    "title": string;
                    "properties": {
                        "title": {
                            "type": string;
                        };
                        "value": {
                            "$ref": string;
                        };
                    };
                };
            };
        };
    };
    "GridLayout": {
        "type": string;
        "title": string;
        "required": string[];
        "properties": {
            "cols": {
                "title": string;
                "description": string;
                "type": string;
            };
            "type": {
                "type": string;
                "const": string;
            };
            "elements": {
                "title": string;
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
        };
    };
    "CardLayout": {
        "type": string;
        "title": string;
        "required": string[];
        "properties": {
            "type": {
                "type": string;
                "const": string;
            };
            "title": {
                "title": string;
                "type": string;
            };
            "icon": {
                "title": string;
                "$ref": string;
            };
            "description": {
                "title": string;
                "type": string;
            };
            "content": {
                "title": string;
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
        };
    };
    "VerticalLayout": {
        "type": string;
        "title": string;
        "required": string[];
        "properties": {
            "type": {
                "type": string;
                "const": string;
            };
            "elements": {
                "title": string;
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
        };
    };
    "TextLayout": {
        "type": string;
        "title": string;
        "required": string[];
        "properties": {
            "type": {
                "type": string;
                "const": string;
            };
            "content": {
                "title": string;
                "description": string;
                "type": string;
            };
        };
    };
    "DashboardInnerElement": {
        "type": string;
        "oneOf": {
            "title": string;
            "$ref": string;
        }[];
    };
    "Layout": {
        "title": string;
        "type": string;
        "oneOf": {
            "title": string;
            "$ref": string;
        }[];
    };
    "TapVariableMonitorBaseComponent": {
        "type": string;
        "required": string[];
        "properties": {
            "variable": {
                "title": string;
                "$ref": string;
            };
            "variableIndex": {
                "title": string;
                "description": string;
                "type": string;
            };
        };
    };
    "TapVariableMonitorComponents": {
        "title": string;
        "type": string;
        "oneOf": {
            "title": string;
            "$ref": string;
        }[];
    };
    "icon": {
        "type": string;
        "description": string;
    };
    "variable-list": {
        "type": string;
    };
    "TapVariableGaugeComponent": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
                "min": {
                    "title": string;
                    "type": string;
                };
                "max": {
                    "title": string;
                    "type": string;
                };
                "unit": {
                    "title": string;
                    "type": string;
                };
                "dynamicRange": {
                    "title": string;
                    "type": string;
                    "description": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapVariableTextComponent": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
                "unit": {
                    "title": string;
                    "type": string;
                };
                "editable": {
                    "title": string;
                    "type": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapVariableToggleComponent": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
                "conditionOn": {
                    "title": string;
                    "description": string;
                    "exemple": string[];
                    "type": string;
                };
                "editable": {
                    "title": string;
                    "type": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapVariableRangeComponent": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
                "disabled": {
                    "title": string;
                    "type": string;
                };
                "min": {
                    "title": string;
                    "type": string;
                };
                "max": {
                    "title": string;
                    "type": string;
                };
                "step": {
                    "title": string;
                    "type": string;
                    "default": number;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapVariableCardComponent": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            /**
             * Create a dashboard configuration according to Tap Schema.
             */
            "properties": {
                "title": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
                "type": {
                    "const": string;
                    "title": string;
                };
                "icon": {
                    "title": string;
                    "$ref": string;
                };
                "description": {
                    "title": string;
                    "type": string;
                };
                "unit": {
                    "title": string;
                    "type": string;
                };
                "editable": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapVariableButtonsComponent": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "const": string;
                    "title": string;
                    "type": string;
                };
                "actions": {
                    "title": string;
                    "type": string;
                    "items": {
                        "type": string;
                        "properties": {
                            "name": {
                                "type": string;
                                "description": string;
                                "title": string;
                            };
                            "value": {
                                "title": string;
                                "description": string;
                                "oneOf": {
                                    "type": string;
                                }[];
                            };
                            "icon": {
                                "title": string;
                                "$ref": string;
                            };
                        };
                    };
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapInfo": {
        "type": string;
        "enum": string[];
    };
    "TapInfoList": {
        "type": string;
        "items": {
            "type": string;
            "required": string[];
            "properties": {
                "key": {
                    "$ref": string;
                };
            };
        };
    };
    "TapInfoPage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "const": string;
                    "type": string;
                };
                "items": {
                    "$ref": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapDevicePage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "const": string;
                    "type": string;
                };
                "children": {
                    "type": string;
                    "properties": {
                        "TapInfoPage": {
                            "$ref": string;
                        };
                        "MonitoringPage": {
                            "$ref": string;
                        };
                        "ProtocolConfigurationPage": {
                            "$ref": string;
                        };
                        "TapLoginPage": {
                            "$ref": string;
                        };
                    };
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "MonitoringPage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "const": string;
                    "type": string;
                };
                "children": {
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapConnectionPage": {
        "title": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "const": string;
                    "type": string;
                };
                "protocols": {
                    "type": string;
                    "properties": {
                        "mqtt": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "title": string;
                                    "description": string;
                                    "type": string;
                                };
                            };
                        };
                        "socket": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "title": string;
                                    "description": string;
                                    "type": string;
                                };
                            };
                            "_properties": {
                                "enableNetworkScan": {
                                    "type": string;
                                    "description": string;
                                };
                                "enableWifiAccessPointScan": {
                                    "type": string;
                                    "description": string;
                                };
                                "enableWebsocket": {
                                    "type": string;
                                };
                                "enableSoket": {
                                    "type": string;
                                };
                            };
                        };
                        "nfc": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "title": string;
                                    "description": string;
                                    "type": string;
                                };
                            };
                        };
                        "ble": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "title": string;
                                    "description": string;
                                    "type": string;
                                };
                            };
                        };
                    };
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "AboutPage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
                "items": {
                    "title": string;
                    "description": string;
                    "type": string;
                    "items": {
                        "title": string;
                        "required": string[];
                        "type": string;
                        "properties": {
                            "title": {
                                "title": string;
                                "type": string;
                            };
                            "value": {
                                "title": string;
                                "type": string;
                            };
                        };
                    };
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "TapLoginPage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "NotFoundPage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "ProtocolConfigurationPage": {
        "title": string;
        "type": string;
        "allOf": ({
            "$ref": string;
            "type"?: undefined;
            "required"?: undefined;
            "properties"?: undefined;
        } | {
            "type": string;
            "required": string[];
            "properties": {
                "type": {
                    "title": string;
                    "type": string;
                    "const": string;
                };
                "serialSettings": {
                    "type": string;
                    "title": string;
                    "description": string;
                };
                "modbusSettings": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
                "tapnpassSettings": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
            };
            "$ref"?: undefined;
        })[];
    };
    "app": {
        "type": string;
        "title": string;
        "required": string[];
        "_prop_protocols": {
            "type": string;
            "items": {
                "$ref": string;
            };
        };
        "properties": {
            "id": {
                "type": string;
                "title": string;
                "description": string;
                "default": string;
            };
            "domain": {
                "type": string;
                "title": string;
                "descripton": string;
                "default": string;
            };
            "description": {
                "type": string;
                "title": string;
            };
            "name": {
                "type": string;
                "title": string;
            };
            "version": {
                "type": string;
                "title": string;
            };
            "defaultPage": {
                "title": string;
                "type": string;
                "description": string;
            };
            "logo": {
                "title": string;
                "type": string;
                "properties": {
                    "image": {
                        "type": string;
                        "description": string;
                    };
                };
            };
            "splashScreen": {
                "title": string;
                "type": string;
                "properties": {
                    "image": {
                        "title": string;
                        "type": string;
                    };
                };
            };
            "theme": {
                "title": string;
                "type": string;
                "required": string[];
                "properties": {
                    "colors": {
                        "$ref": string;
                    };
                };
            };
            "platforms": {
                "type": string;
                "properties": {
                    "android": {
                        "title": string;
                        "type": string;
                        "properties": {
                            "enabled": {
                                "title": string;
                                "type": string;
                            };
                        };
                    };
                    "ios": {
                        "title": string;
                        "type": string;
                        "properties": {
                            "enabled": {
                                "title": string;
                                "type": string;
                            };
                        };
                    };
                    "browser": {
                        "title": string;
                        "type": string;
                        "properties": {
                            "enabled": {
                                "description": string;
                                "title": string;
                                "type": string;
                            };
                            "PWA": {
                                "title": string;
                                "description": string;
                                "type": string;
                            };
                        };
                    };
                };
            };
            "pages": {
                "type": string;
                "properties": {
                    "TapConnectionPage": {
                        "$ref": string;
                    };
                    "TapDevicePage": {
                        "$ref": string;
                    };
                    "AboutPage": {
                        "$ref": string;
                    };
                    "NotFoundPage": {
                        "$ref": string;
                    };
                };
            };
            "menu": {
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
        };
    };
    "ui-components": {
        "type": string;
        "items": {
            "$ref": string;
        };
    };
};
export declare function createSchema(tapConfigSchema: TapConfigSchema): {
    "title": string;
    "type": string;
    "required": string[];
    "properties": {
        "version": {
            "title": string;
            "type": string;
            "properties": {
                "generator": {
                    "type": string;
                    "title": string;
                };
            };
        };
        "app": {
            "$ref": string;
        };
        "formMeta": {
            "type": string;
            "title": string;
            "properties": {
                "showAdvanceSettings": {
                    "type": string;
                    "title": string;
                };
            };
        };
    };
    "definitions": {
        "Color": {
            "oneOf": {
                "type": string;
            }[];
            "title": string;
        };
        "ColorTheme": {
            "title": string;
            "type": string;
            "required": string[];
            "properties": {
                "name": {
                    "type": string;
                };
                "value": {
                    "title": string;
                    "$ref": string;
                };
                "tint": {
                    "$ref": string;
                };
                "contrast": {
                    "$ref": string;
                };
                "shade": {
                    "$ref": string;
                };
            };
        };
        "ColorThemeList": {
            "title": string;
            "type": string;
            "items": {
                "$ref": string;
            };
        };
        "TapCommunicationProtocol": {
            "type": string;
            "enum": string[];
        };
        "MonitoringDashboardPage": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "type": string;
                        "title": string;
                        "const": string;
                    };
                    "profileName": {
                        "title": string;
                        "description": string;
                        "$ref": string;
                    };
                    "content": {
                        "$ref": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "SubMenuItem": {
            "title": string;
            "type": string;
            "required": string[];
            "properties": {
                "title": {
                    "title": string;
                    "type": string;
                };
                "url": {
                    "title": string;
                    "type": string;
                };
                "icon": {
                    "title": string;
                    "$ref": string;
                };
            };
        };
        "TapProfileName": {
            "type": string;
        };
        "page": {
            "type": string;
            "required": string[];
            "properties": {
                "enabled": {
                    "title": string;
                    "description": string;
                    "type": string;
                    "default": string;
                };
                "pageTitle": {
                    "title": string;
                    "type": string;
                };
                "path": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
                "projectPath": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
            };
        };
        "MenuItem": {
            "title": string;
            "type": string;
            "required": string[];
            "properties": {
                "title": {
                    "title": string;
                    "type": string;
                };
                "url": {
                    "title": string;
                    "type": string;
                };
                "icon": {
                    "title": string;
                    "$ref": string;
                };
                "children": {
                    "title": string;
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
        };
        "HorizontalLayout": {
            "type": string;
            "title": string;
            "required": string[];
            "properties": {
                "type": {
                    "type": string;
                    "const": string;
                };
                "elements": {
                    "title": string;
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
        };
        "ListLayout": {
            "type": string;
            "title": string;
            "required": string[];
            "properties": {
                "type": {
                    "type": string;
                    "const": string;
                };
                "items": {
                    "type": string;
                    "items": {
                        "type": string;
                        "title": string;
                        "properties": {
                            "title": {
                                "type": string;
                            };
                            "value": {
                                "$ref": string;
                            };
                        };
                    };
                };
            };
        };
        "GridLayout": {
            "type": string;
            "title": string;
            "required": string[];
            "properties": {
                "cols": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
                "type": {
                    "type": string;
                    "const": string;
                };
                "elements": {
                    "title": string;
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
        };
        "CardLayout": {
            "type": string;
            "title": string;
            "required": string[];
            "properties": {
                "type": {
                    "type": string;
                    "const": string;
                };
                "title": {
                    "title": string;
                    "type": string;
                };
                "icon": {
                    "title": string;
                    "$ref": string;
                };
                "description": {
                    "title": string;
                    "type": string;
                };
                "content": {
                    "title": string;
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
        };
        "VerticalLayout": {
            "type": string;
            "title": string;
            "required": string[];
            "properties": {
                "type": {
                    "type": string;
                    "const": string;
                };
                "elements": {
                    "title": string;
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
        };
        "TextLayout": {
            "type": string;
            "title": string;
            "required": string[];
            "properties": {
                "type": {
                    "type": string;
                    "const": string;
                };
                "content": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
            };
        };
        "DashboardInnerElement": {
            "type": string;
            "oneOf": {
                "title": string;
                "$ref": string;
            }[];
        };
        "Layout": {
            "title": string;
            "type": string;
            "oneOf": {
                "title": string;
                "$ref": string;
            }[];
        };
        "TapVariableMonitorBaseComponent": {
            "type": string;
            "required": string[];
            "properties": {
                "variable": {
                    "title": string;
                    "$ref": string;
                };
                "variableIndex": {
                    "title": string;
                    "description": string;
                    "type": string;
                };
            };
        };
        "TapVariableMonitorComponents": {
            "title": string;
            "type": string;
            "oneOf": {
                "title": string;
                "$ref": string;
            }[];
        };
        "icon": {
            "type": string;
            "description": string;
        };
        "variable-list": {
            "type": string;
        };
        "TapVariableGaugeComponent": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                    "min": {
                        "title": string;
                        "type": string;
                    };
                    "max": {
                        "title": string;
                        "type": string;
                    };
                    "unit": {
                        "title": string;
                        "type": string;
                    };
                    "dynamicRange": {
                        "title": string;
                        "type": string;
                        "description": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapVariableTextComponent": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                    "unit": {
                        "title": string;
                        "type": string;
                    };
                    "editable": {
                        "title": string;
                        "type": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapVariableToggleComponent": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                    "conditionOn": {
                        "title": string;
                        "description": string;
                        "exemple": string[];
                        "type": string;
                    };
                    "editable": {
                        "title": string;
                        "type": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapVariableRangeComponent": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                    "disabled": {
                        "title": string;
                        "type": string;
                    };
                    "min": {
                        "title": string;
                        "type": string;
                    };
                    "max": {
                        "title": string;
                        "type": string;
                    };
                    "step": {
                        "title": string;
                        "type": string;
                        "default": number;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapVariableCardComponent": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                /**
                 * Create a dashboard configuration according to Tap Schema.
                 */
                "properties": {
                    "title": {
                        "title": string;
                        "description": string;
                        "type": string;
                    };
                    "type": {
                        "const": string;
                        "title": string;
                    };
                    "icon": {
                        "title": string;
                        "$ref": string;
                    };
                    "description": {
                        "title": string;
                        "type": string;
                    };
                    "unit": {
                        "title": string;
                        "type": string;
                    };
                    "editable": {
                        "title": string;
                        "description": string;
                        "type": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapVariableButtonsComponent": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "const": string;
                        "title": string;
                        "type": string;
                    };
                    "actions": {
                        "title": string;
                        "type": string;
                        "items": {
                            "type": string;
                            "properties": {
                                "name": {
                                    "type": string;
                                    "description": string;
                                    "title": string;
                                };
                                "value": {
                                    "title": string;
                                    "description": string;
                                    "oneOf": {
                                        "type": string;
                                    }[];
                                };
                                "icon": {
                                    "title": string;
                                    "$ref": string;
                                };
                            };
                        };
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapInfo": {
            "type": string;
            "enum": string[];
        };
        "TapInfoList": {
            "type": string;
            "items": {
                "type": string;
                "required": string[];
                "properties": {
                    "key": {
                        "$ref": string;
                    };
                };
            };
        };
        "TapInfoPage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "const": string;
                        "type": string;
                    };
                    "items": {
                        "$ref": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapDevicePage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "const": string;
                        "type": string;
                    };
                    "children": {
                        "type": string;
                        "properties": {
                            "TapInfoPage": {
                                "$ref": string;
                            };
                            "MonitoringPage": {
                                "$ref": string;
                            };
                            "ProtocolConfigurationPage": {
                                "$ref": string;
                            };
                            "TapLoginPage": {
                                "$ref": string;
                            };
                        };
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "MonitoringPage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "const": string;
                        "type": string;
                    };
                    "children": {
                        "type": string;
                        "items": {
                            "$ref": string;
                        };
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapConnectionPage": {
            "title": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "const": string;
                        "type": string;
                    };
                    "protocols": {
                        "type": string;
                        "properties": {
                            "mqtt": {
                                "title": string;
                                "type": string;
                                "properties": {
                                    "enabled": {
                                        "title": string;
                                        "description": string;
                                        "type": string;
                                    };
                                };
                            };
                            "socket": {
                                "title": string;
                                "type": string;
                                "properties": {
                                    "enabled": {
                                        "title": string;
                                        "description": string;
                                        "type": string;
                                    };
                                };
                                "_properties": {
                                    "enableNetworkScan": {
                                        "type": string;
                                        "description": string;
                                    };
                                    "enableWifiAccessPointScan": {
                                        "type": string;
                                        "description": string;
                                    };
                                    "enableWebsocket": {
                                        "type": string;
                                    };
                                    "enableSoket": {
                                        "type": string;
                                    };
                                };
                            };
                            "nfc": {
                                "title": string;
                                "type": string;
                                "properties": {
                                    "enabled": {
                                        "title": string;
                                        "description": string;
                                        "type": string;
                                    };
                                };
                            };
                            "ble": {
                                "title": string;
                                "type": string;
                                "properties": {
                                    "enabled": {
                                        "title": string;
                                        "description": string;
                                        "type": string;
                                    };
                                };
                            };
                        };
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "AboutPage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                    "items": {
                        "title": string;
                        "description": string;
                        "type": string;
                        "items": {
                            "title": string;
                            "required": string[];
                            "type": string;
                            "properties": {
                                "title": {
                                    "title": string;
                                    "type": string;
                                };
                                "value": {
                                    "title": string;
                                    "type": string;
                                };
                            };
                        };
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "TapLoginPage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "NotFoundPage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "ProtocolConfigurationPage": {
            "title": string;
            "type": string;
            "allOf": ({
                "$ref": string;
                "type"?: undefined;
                "required"?: undefined;
                "properties"?: undefined;
            } | {
                "type": string;
                "required": string[];
                "properties": {
                    "type": {
                        "title": string;
                        "type": string;
                        "const": string;
                    };
                    "serialSettings": {
                        "type": string;
                        "title": string;
                        "description": string;
                    };
                    "modbusSettings": {
                        "title": string;
                        "description": string;
                        "type": string;
                    };
                    "tapnpassSettings": {
                        "title": string;
                        "description": string;
                        "type": string;
                    };
                };
                "$ref"?: undefined;
            })[];
        };
        "app": {
            "type": string;
            "title": string;
            "required": string[];
            "_prop_protocols": {
                "type": string;
                "items": {
                    "$ref": string;
                };
            };
            "properties": {
                "id": {
                    "type": string;
                    "title": string;
                    "description": string;
                    "default": string;
                };
                "domain": {
                    "type": string;
                    "title": string;
                    "descripton": string;
                    "default": string;
                };
                "description": {
                    "type": string;
                    "title": string;
                };
                "name": {
                    "type": string;
                    "title": string;
                };
                "version": {
                    "type": string;
                    "title": string;
                };
                "defaultPage": {
                    "title": string;
                    "type": string;
                    "description": string;
                };
                "logo": {
                    "title": string;
                    "type": string;
                    "properties": {
                        "image": {
                            "type": string;
                            "description": string;
                        };
                    };
                };
                "splashScreen": {
                    "title": string;
                    "type": string;
                    "properties": {
                        "image": {
                            "title": string;
                            "type": string;
                        };
                    };
                };
                "theme": {
                    "title": string;
                    "type": string;
                    "required": string[];
                    "properties": {
                        "colors": {
                            "$ref": string;
                        };
                    };
                };
                "platforms": {
                    "type": string;
                    "properties": {
                        "android": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "title": string;
                                    "type": string;
                                };
                            };
                        };
                        "ios": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "title": string;
                                    "type": string;
                                };
                            };
                        };
                        "browser": {
                            "title": string;
                            "type": string;
                            "properties": {
                                "enabled": {
                                    "description": string;
                                    "title": string;
                                    "type": string;
                                };
                                "PWA": {
                                    "title": string;
                                    "description": string;
                                    "type": string;
                                };
                            };
                        };
                    };
                };
                "pages": {
                    "type": string;
                    "properties": {
                        "TapConnectionPage": {
                            "$ref": string;
                        };
                        "TapDevicePage": {
                            "$ref": string;
                        };
                        "AboutPage": {
                            "$ref": string;
                        };
                        "NotFoundPage": {
                            "$ref": string;
                        };
                    };
                };
                "menu": {
                    "type": string;
                    "items": {
                        "$ref": string;
                    };
                };
            };
        };
        "ui-components": {
            "type": string;
            "items": {
                "$ref": string;
            };
        };
    };
};
export declare function createDefaultConfigGenerator(tapConfigSchema: TapConfigSchema): ConfigGenerator;
export declare function createDefaultAppConfig(tapConfigSchema: TapConfigSchema): TapAppGeneratorSchema;
export declare function convertXMLNodeToType<T>(dotAccessor: DotAccessor): T;
export declare function createAppConfigFromIotizeStudioConfig(xmlConfigContent: string): ConfigGenerator;
export declare function createDefaultProjectConfig(iotizeStudioConfig: string): ProjectConfig;
export declare class ConfigGenerator {
    schema: TapAppGeneratorSchema;
    tapConfig: TapConfigSchema;
    iotizeStudioConfig: IotizeConfigModel | undefined;
    _logger: {
        warn: any;
        info: any;
    };
    constructor(schema: TapAppGeneratorSchema, tapConfig: TapConfigSchema, iotizeStudioConfig: IotizeConfigModel | undefined, _logger?: {
        warn: any;
        info: any;
    });
    readonly appTheme: AppThemeGenerator;
    readonly pages: {
        [k: string]: any;
        TapConnectionPage?: TapConnectionPage | undefined;
        TapDevicePage?: TapDevicePage | undefined;
        AboutPage?: AboutPage | undefined;
        NotFoundPage?: NotFoundPage | undefined;
    };
    readonly rootPageList: AppGeneratorPage[];
    readonly pageList: AppGeneratorPage[];
    private _pageList;
    static fromTapConfig(tapConfig: TapConfigSchema): ConfigGenerator;
    notFoundPage(relativePath?: string): AppGeneratorPage;
    connectionPage(relativePath?: string, override?: Partial<TapConnectionPage>): TapConnectionPage;
    infoPage(projectPath?: string, override?: Partial<TapInfoPage>): TapInfoPage;
    /**
     * Create a dashboard configuration according to Tap Schema.
     */
    addDashboard(profileName: string, path: string, projectPath: string): MonitoringDashboardPage;
    about(relativePath?: string, override?: Partial<AboutPage>): AboutPage;
    monitoringPage(projectPath?: string, dashboardProfiles?: string[]): MonitoringPage;
    tapDevicePage(projectPath?: string): TapDevicePage;
    protocolConfiguration(projectPath?: string, override?: Partial<ProtocolConfigurationPage>): ProtocolConfigurationPage;
    tapLoginPage(projectPath?: string): TapLoginPage;
    getOrCreateDashboard(profileName: string, _options: {
        reconfigure?: boolean;
        project?: string;
        name?: string;
    }): MonitoringDashboardPage;
    addMenuForSubPage(page: AppGeneratorPage, icon: string, parentPageString: string): MenuItem | undefined;
    addMenu(item: MenuItem): void;
    addMenuForPage(page: AppGeneratorPage, icon?: string): MenuItem | undefined;
    getPageByPath<T extends AppGeneratorPage>(path: string, pages?: AppGeneratorPage[]): T | undefined;
    getOrCreatePageByPath<T extends AppGeneratorPage>(path: string, defaultValue: T): T;
    getPageByType<T extends AppGeneratorPage>(type: string): T | undefined;
    hasPageType(type: string): boolean;
    addPage(page: AppGeneratorPage): void;
    getDefaultPage(): string;
    /**
     * TODO
     * @param pageName
     */
    hasPageByPath(path: string): boolean;
    getOrCreateAppPage<T extends AppGeneratorPage>(appPage: T): T;
    getOrCreateSubPage<T extends AppGeneratorPage>(appPage: T, parentPageOrString: AppGeneratorPage | string, defaultSubProjectPath: string, subPageKey?: string): T;
    private readonly logger;
}
export declare class AppThemeGenerator {
    options: {
        shadeFactor: number;
        tintFactor: number;
    };
    theme: Theme;
    readonly colors: import("../schema/appconfig").ColorTheme[];
    constructor(theme: Theme);
    setTheme(theme: any): void;
    setColor(name: string, value: Color): void;
    /**
     * Inspired by https://maketintsandshades.com/about
     * @param color
     * @param variant
     */
    computeVariant(color: number, variant: 'contrast' | 'shade' | 'tint'): number;
    _applyFactor(color: number, fct: (input: number) => number): number;
}
export declare function isDarkColor(hexColor: number): boolean;
export declare function hexToRgb(c: number): {
    r: number;
    g: number;
    b: number;
};
