"""Builtin library definitions used to seed the plugin manager."""

from __future__ import annotations

BUILTIN_LIBRARY_DEFINITIONS = [
    {
        "name": "BuiltIn",
        "package_name": "robotframework",
        "import_path": "robot.libraries.BuiltIn",
        "library_type": "builtin",
        "description": "Robot Framework built-in library with generic keywords",
        "use_cases": ["basic operations", "variables", "control flow", "logging", "keywords"],
        "categories": ["core", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 1,
        "default_enabled": True,
    },
    {
        "name": "Collections",
        "package_name": "robotframework",
        "import_path": "robot.libraries.Collections",
        "library_type": "builtin",
        "description": "Keywords for handling lists and dictionaries",
        "use_cases": ["list manipulation", "dictionary operations", "data structures"],
        "categories": ["core", "data", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 10,
        "default_enabled": True,
    },
    {
        "name": "DateTime",
        "package_name": "robotframework",
        "import_path": "robot.libraries.DateTime",
        "library_type": "builtin",
        "description": "Date and time manipulation keywords",
        "use_cases": ["date operations", "time calculations", "timestamp validation"],
        "categories": ["core", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 20,
        "default_enabled": True,
    },
    {
        "name": "Dialogs",
        "package_name": "robotframework",
        "import_path": "robot.libraries.Dialogs",
        "library_type": "builtin",
        "description": "User interaction and pause execution keywords",
        "use_cases": ["user input", "pause execution", "interactive testing", "manual intervention"],
        "categories": ["core", "testing", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 50,
        "default_enabled": True,
    },
    {
        "name": "OperatingSystem",
        "package_name": "robotframework",
        "import_path": "robot.libraries.OperatingSystem",
        "library_type": "builtin",
        "description": "Operating system related keywords",
        "use_cases": [
            "file operations",
            "directory management",
            "environment variables",
            "system commands",
        ],
        "categories": ["core", "system", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 15,
        "default_enabled": True,
    },
    {
        "name": "Process",
        "package_name": "robotframework",
        "import_path": "robot.libraries.Process",
        "library_type": "builtin",
        "description": "Process execution and management keywords",
        "use_cases": ["execute commands", "process management", "system integration"],
        "categories": ["core", "system", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 25,
        "default_enabled": True,
    },
    {
        "name": "Screenshot",
        "package_name": "robotframework",
        "import_path": "robot.libraries.Screenshot",
        "library_type": "builtin",
        "description": "Desktop screenshot capture keywords",
        "use_cases": ["desktop screenshots", "visual documentation", "debugging"],
        "categories": ["core", "visual", "testing"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 40,
        "default_enabled": True,
    },
    {
        "name": "String",
        "package_name": "robotframework",
        "import_path": "robot.libraries.String",
        "library_type": "builtin",
        "description": "String manipulation and validation keywords",
        "use_cases": ["text manipulation", "string validation", "pattern matching"],
        "categories": ["core", "data", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 12,
        "default_enabled": True,
    },
    {
        "name": "Telnet",
        "package_name": "robotframework",
        "import_path": "robot.libraries.Telnet",
        "library_type": "builtin",
        "description": "Telnet connection and command execution keywords",
        "use_cases": ["telnet connections", "network protocols", "legacy systems"],
        "categories": ["core", "network", "system"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 45,
        "default_enabled": True,
    },
    {
        "name": "XML",
        "package_name": "robotframework",
        "import_path": "robot.libraries.XML",
        "library_type": "builtin",
        "description": "XML parsing, validation and manipulation keywords",
        "use_cases": ["xml parsing", "xml validation", "data verification"],
        "categories": ["core", "data", "utilities"],
        "installation_command": "Built-in with Robot Framework",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 30,
        "default_enabled": True,
    },
    {
        "name": "DatabaseLibrary",
        "package_name": "robotframework-databaselibrary",
        "import_path": "DatabaseLibrary",
        "library_type": "external",
        "description": "Database testing with multiple DB support",
        "use_cases": ["database testing", "sql queries", "data validation", "database connections"],
        "categories": ["database", "testing", "data"],
        "installation_command": "pip install robotframework-databaselibrary",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 21,
        "default_enabled": True,
        "extra_name": "database",
    },
    {
        "name": "AppiumLibrary",
        "package_name": "robotframework-appiumlibrary",
        "import_path": "AppiumLibrary",
        "library_type": "external",
        "description": "Mobile app testing with Appium",
        "use_cases": ["mobile testing", "android automation", "ios testing", "app testing"],
        "categories": ["mobile", "testing"],
        "installation_command": "pip install robotframework-appiumlibrary",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": ["appium"],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 27,
        "default_enabled": False,
        "extra_name": "mobile",
    },
    {
        "name": "SSHLibrary",
        "package_name": "robotframework-sshlibrary",
        "import_path": "SSHLibrary",
        "library_type": "external",
        "description": "SSH and SFTP operations",
        "use_cases": ["remote connections", "ssh commands", "file transfer", "server management"],
        "categories": ["network", "system"],
        "installation_command": "pip install robotframework-sshlibrary",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 32,
        "default_enabled": True,
    },
    {
        "name": "FTPLibrary",
        "package_name": "robotframework-ftplibrary",
        "import_path": "FTPLibrary",
        "library_type": "external",
        "description": "FTP operations and file transfer",
        "use_cases": ["ftp operations", "file transfer", "server management"],
        "categories": ["network", "system"],
        "installation_command": "pip install robotframework-ftplibrary",
        "post_install_commands": [],
        "platform_requirements": [],
        "dependencies": [],
        "requires_type_conversion": False,
        "supports_async": False,
        "is_deprecated": False,
        "load_priority": 35,
        "default_enabled": True,
    },
]
