import type { HttpTransport } from '../http/transport'; export type HttpPostJsonTransport = (args: { url: string; body: TReq; signal?: AbortSignal; headers?: Record; }) => Promise<{ status: number; data: TRes; }>; export interface ClientContext { transport: HttpPostJsonTransport; baseUrl: string; apiKey?: string; } export declare function toHttpTransport(ctx: ClientContext): HttpTransport; type Fn = (...args: any[]) => any; type PublicMethodNames = { [K in keyof T]: T[K] extends Fn ? K : never; }[keyof T]; type ReservedKeys = 'constructor' | 'attach'; export type ServiceAPI = Omit>, ReservedKeys>; export type PluggableService = { attach?: (ctx: ClientContext) => void; }; export type PluggableNamedService = PluggableService & { readonly namespace: NS; }; export type Client = API & { use>(service: S): Client; }; export declare function createClient(ctx: ClientContext): Client; export {}; //# sourceMappingURL=client.d.ts.map