/** @packageDocumentation
 * @module RpcInterface
 */
import { ChangedElements } from "../ChangedElements";
import { IModelRpcProps } from "../IModel";
import { RpcInterface } from "../RpcInterface";
/** 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.
 */
export declare abstract class WipRpcInterface extends RpcInterface {
    /** Returns the IModelReadRpcInterface instance for the frontend. */
    static getClient(): WipRpcInterface;
    /** The immutable name of the interface. */
    static readonly 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.
     */
    static interfaceVersion: string;
    placeholder(_iModelToken: IModelRpcProps): Promise<string>;
    isChangeCacheAttached(_iModelToken: IModelRpcProps): Promise<boolean>;
    attachChangeCache(_iModelToken: IModelRpcProps): Promise<void>;
    getChangedElements(_iModelToken: IModelRpcProps, _startChangesetId: string, _endChangesetId: string): Promise<ChangedElements | undefined>;
    isChangesetProcessed(_iModelToken: IModelRpcProps, _changesetId: string): Promise<boolean>;
}
//# sourceMappingURL=WipRpcInterface.d.ts.map