# Copyright (c) 2025 Huawei Technologies Co., Ltd.
# This program is free software, you can redistribute it and/or modify it under the terms and conditions of
# CANN Open Software License Agreement Version 2.0 (the "License").
# Please refer to the License for details. You may not use this file except in compliance with the License.
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
# See LICENSE in the root of the software repository for the full text of the License.

from .interface import (
    use_model,
    use_npu,
    is_initialized,
    is_available,
    is_model,
    magic_elf_value,
    check_device_handle,
    default_device,
    current_device,
    current_stream,
    current_platform,
    device_count,
    device_info,
    reset_device,
    set_device,
    create_stream,
    destroy_stream,
    register_device_binary_kernel,
    unregister_device_binary_kernel,
    register_function,
    malloc,
    memcpy,
    copy_data_to_device,
    copy_data_from_device,
    launch_kernel,
    synchronize,
    free,
    synchronize_device,
    c2c_ctrl_addr,
    set_pro_switch,
    current_tick,
    acl_init,
    acl_finalize,
    set_soc_version,
    npu_utils,
    msprof_task_type,
    get_soc_version,
    free_mem,
)
from .support import (
    Stream,
    Memory,
    Kernel,
    Function,
    CoreType,
    DeviceModuleType,
    DeviceInfoType,
    MemorySizes,
    ProfilingCommandHandle,
    MsprofTaskType,
)

from .print_utils import call_print_interface

__all__ = [
    # from .interface
    "use_model",
    "use_npu",
    "is_initialized",
    "is_available",
    "is_model",
    "magic_elf_value",
    "check_device_handle",
    "default_device",
    "current_device",
    "current_stream",
    "current_platform",
    "device_count",
    "device_info",
    "reset_device",
    "set_device",
    "create_stream",
    "destroy_stream",
    "register_device_binary_kernel",
    "unregister_device_binary_kernel",
    "register_function",
    "malloc",
    "memcpy",
    "copy_data_to_device",
    "copy_data_from_device",
    "launch_kernel",
    "synchronize",
    "free",
    "synchronize_device",
    "c2c_ctrl_addr",
    "set_pro_switch",
    "current_tick",
    "acl_init",
    "acl_finalize",
    "set_soc_version",
    "npu_utils",
    "msprof_task_type",
    "get_soc_version",
    "free_mem"
    # from .support
    "Stream",
    "Memory",
    "Kernel",
    "Function",
    "CoreType",
    "DeviceModuleType",
    "DeviceInfoType",
    "MemorySizes",
    "ProfilingCommandHandle",
    "call_print_interface",
    "MsprofTaskType",
]