"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/** @packageDocumentation
 * @module RpcInterface
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.WipRpcInterface = void 0;
const RpcInterface_1 = require("../RpcInterface");
const RpcManager_1 = require("../RpcManager");
/** The purpose of this class is to house WIP RPC methods. For example:
 * - WIP methods where signatures or behavior is still changing
 * - Experimental methods that we may decide are a bad idea and never release
 * The idea is to house these WIP RPC methods away from other RpcInterfaces that have stated compatibility goals.
 * Once stable, the goal is to move methods out to their rightful home.
 * Apps/services should understand the *flux* implied by registering this RpcInterface and should be in control of both the client and server before even considering using it.
 * @internal
 * @deprecated in 4.10. If any of these methods are needed in the frontend, they should be rewritten using IPC or HTTP protocol.
 */
class WipRpcInterface extends RpcInterface_1.RpcInterface {
    /** Returns the IModelReadRpcInterface instance for the frontend. */
    static getClient() { return RpcManager_1.RpcManager.getClientForInterface(WipRpcInterface); } // eslint-disable-line @typescript-eslint/no-deprecated
    /*===========================================================================================
      NOTE: Any add/remove/change to the methods below requires an update of the interface version.
      NOTE: Please consult the README in this folder for the semantic versioning rules.
    ==========================================================================================*/
    async placeholder(_iModelToken) { return this.forward(arguments); } // here to test that WipRpcInterface is configured properly
    async isChangeCacheAttached(_iModelToken) { return this.forward(arguments); }
    async attachChangeCache(_iModelToken) { return this.forward(arguments); }
    async getChangedElements(_iModelToken, _startChangesetId, _endChangesetId) { return this.forward(arguments); }
    async isChangesetProcessed(_iModelToken, _changesetId) { return this.forward(arguments); }
}
exports.WipRpcInterface = WipRpcInterface;
/** The immutable name of the interface. */
WipRpcInterface.interfaceName = "WipRpcInterface";
/** The semantic version of the interface.
 * @note The WipRpcInterface will never progress to 1.0 since it is never intended to be public.
 */
WipRpcInterface.interfaceVersion = "0.5.0";
//# sourceMappingURL=WipRpcInterface.js.map