/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @addtogroup Ril
 * @{
 *
 * @brief Defines Ril-related APIs.
 *
 * The radio interface layer (RIL) module provides APIs and callbacks for upper-layer telephony services,
 * including call, SMS, MMS, network search, and SIM card services.
 *
 * @since 4.1
 * @version 1.3
 */

/**
 * @file IRilCallback.idl
 *
 * @brief Declares callback APIs of the RIL module.
 *
 * @since 4.1
 * @version 1.3
 */

/**
 * @brief Defines the path for the package of the RIL module APIs.
 *
 * @since 4.1
 * @version 1.3
 */
package ohos.hdi.ril.v1_3;

import ohos.hdi.ril.v1_2.IRilCallback;
import ohos.hdi.ril.v1_3.Types;

/**
 * @brief Declares callback APIs of the RIL module.
 *
 * These APIs provide the callback functions for making calls, sending SMS and MMS messages,
 * activating SIM cards, and accessing the Internet. The caller needs to implement these callbacks.
 *
 * @since 4.1
 * @version 1.3
 */
[callback] interface IRilCallback extends ohos.hdi.ril.v1_2.IRilCallback {
    /**
      * @brief Callback for the response of querying the international mobile equipment identity software version (IMEISV).
      *
      * @param responseInfo Common response information, such as the card slot ID and request sequence ID.
      * For details, see {@link RilRadioResponseInfo}.
      * @param imeiSv IMEISV of the device.
      *
      * @since 5.0
      * @version 1.1
      */
    [oneway] GetImeiSvResponse([in] struct RilRadioResponseInfo responseInfo, [in] String imeiSv);

    /**
     * @brief Callback for the response of obtaining the SIM card status.
     *
     * @param responseInfo Common response information, such as the card slot ID and request sequence ID.
     * For details, see {@link RilRadioResponseInfo}.
     * @param SimCardStatusInfo SIM card status. For details, see {@link SimCardStatusInfo}.
     *
     * @since 5.0
     * @version 1.1
     */
    [oneway] GetSimCardStatusResponse([in] struct RilRadioResponseInfo responseInfo, [in] struct SimCardStatusInfo result);

    /**
     * @brief Reporting NV refresh result.
     *
     * @param responseInfo Common response information, such as the card slot ID and request sequence ID. For details,
     * see {@link RilRadioResponseInfo}.
     * @param state NV refresh result.
     *
     * @since 5.0
     * @version 1.0
     */
    [oneway] NcfgFinishedResult([in] struct RilRadioResponseInfo responseInfo, [in] int state);

    /**
     * @brief Reporting restart rild Nv match state.
     *
     * @param responseInfo Common response information, such as the card slot ID and request sequence ID. For details,
     * see {@link RilRadioResponseInfo}.
     * @param state restart rild Nv match state.
     *
     * @since 5.0
     * @version 1.0
     */
    [oneway] RestartRildNvMatch([in] struct RilRadioResponseInfo responseInfo, [in] int state);
}
/** @} */