/**
 * @param {import('./lib/sub-channel.js').MessagePortLike} messagePort
 * @param {Parameters<typeof createClient>[1]} [opts]
 *
 * @returns {MapeoClientApi}
 */
export function createMapeoClient(messagePort: import("./lib/sub-channel.js").MessagePortLike, opts?: Parameters<typeof createClient>[1]): MapeoClientApi;
/**
 * @param {MapeoClientApi} client client created with `createMapeoClient`
 * @returns {Promise<void>}
 */
export function closeMapeoClient(client: MapeoClientApi): Promise<void>;
/**
 * @typedef {import('rpc-reflector/client.js').ClientApi<import('./server.js').RpcApi>} AppRpcApi
 */
/**
 * Create an rpc client for application RPC messages that are not part of core,
 * e.g. the different servers for maps, and in the future for serving blobs and
 * icons (once extracted from core)
 *
 * @param {import('./lib/sub-channel.js').MessagePortLike} messagePort
 * @param {Parameters<typeof createClient>[1]} [opts]
 * @return {AppRpcApi}
 */
export function createAppRpcClient(messagePort: import("./lib/sub-channel.js").MessagePortLike, opts?: Parameters<typeof createClient>[1]): AppRpcApi;
/**
 * Close the app RPC client (removes listeners but does not close the message port)
 *
 * @param {AppRpcApi} appRpcClient client created with `createAppRpcClient`
 */
export function closeAppRpcClient(appRpcClient: AppRpcApi): void;
export type AppRpcApi = import("rpc-reflector/client.js").ClientApi<import("./server.js").RpcApi>;
export type MapeoProjectApi = import("rpc-reflector/client.js").ClientApi<import("@comapeo/core").MapeoProject>;
export type MapeoClientApi = import("rpc-reflector/client.js").ClientApi<Omit<import("@comapeo/core").MapeoManager, "getProject"> & {
    getProject: (projectPublicId: string) => Promise<MapeoProjectApi>;
}>;
import { createClient } from 'rpc-reflector/client.js';
