import type { CommandNode, Group } from "../../toolcraft/dist/index.js";
import type { AuthProvider, TokenSource } from "./auth/types.js";
export interface OpenApiClientServices {
    baseUrl: string;
    tokenSource: TokenSource;
}
export interface DefineClientOptions<TServices extends object = Record<string, never>> {
    name: string;
    baseUrl: string;
    auth: AuthProvider;
    commands: CommandNode<OpenApiClientServices & TServices>[];
    handwrittenCommands?: CommandNode<OpenApiClientServices & TServices>[];
}
export interface DefinedClient<TServices extends object = Record<string, never>> {
    name: string;
    mcpPrefix: string;
    root: Group<OpenApiClientServices & TServices>;
    services: OpenApiClientServices;
}
export declare function defineClient<TServices extends object = Record<string, never>>(options: DefineClientOptions<TServices>): DefinedClient<TServices>;
