interface RpcParameterManifest { name: string; type: string; optional: boolean; } interface RpcMethodManifest { name: string; handlerName: string; requireAuth: boolean; parameters: RpcParameterManifest[]; returnType: string; } interface RpcServiceManifest { name: string; className: string; importPath: string; requireAuth: boolean; methods: RpcMethodManifest[]; } interface RpcManifest { schemaVersion: 1; services: RpcServiceManifest[]; } declare class FusionFetcher { private baseUrl; constructor(baseUrl?: string); private request; get(path: string): Promise; post(path: string, body: any): Promise; put(path: string, body: any): Promise; delete(path: string): Promise; } declare const apiFetcher: FusionFetcher; interface WextsRpcClientOptions { baseUrl?: string; fetch?: typeof fetch; getHeaders?: () => Record | Promise>; } type WextsRpcClient = Record Promise>>; declare function createWextsRpcClient(manifest: Pick | undefined, options?: WextsRpcClientOptions): WextsRpcClient; export { FusionFetcher, type WextsRpcClient, type WextsRpcClientOptions, apiFetcher, createWextsRpcClient };