import * as Effect from "../../Effect.ts";
import type { FileSystem } from "../../FileSystem.ts";
import type { Path } from "../../Path.ts";
import type { Scope } from "../../Scope.ts";
import type { Generator } from "../http/Etag.ts";
import type { HttpPlatform } from "../http/HttpPlatform.ts";
import type * as HttpApi from "./HttpApi.ts";
import * as HttpApiClient from "./HttpApiClient.ts";
import type * as HttpApiEndpoint from "./HttpApiEndpoint.ts";
import type * as HttpApiGroup from "./HttpApiGroup.ts";
/**
 * Creates an in-memory client for testing selected groups of an `HttpApi`.
 *
 * **Details**
 *
 * Handlers for the selected groups are taken from the environment; unselected
 * groups are wired with placeholder handlers that fail if called.
 *
 * @category testing
 * @since 4.0.0
 */
export declare const groups: <ApiId extends string, Groups extends HttpApiGroup.Any, const Names extends ReadonlyArray<HttpApiGroup.Name<Groups>>, SelectedGroups = Extract<Groups, {
    readonly identifier: Names[number];
}>>(api: HttpApi.HttpApi<ApiId, Groups>, groupNames: Names, options?: {
    readonly baseUrl?: string | URL | undefined;
} | undefined) => Effect.Effect<import("../../Types.ts").Simplify<{ readonly [Group in Extract<Groups, {
    readonly topLevel: false;
}> as HttpApiGroup.Name<Group>]: HttpApiClient.Client.Group<Group, Group["identifier"], never, never>; } & { readonly [Method in HttpApiClient.Client.TopLevelMethods<Groups, never, never> as Method[0]]: Method[1]; }>, never, Scope | FileSystem | Path | Generator | HttpPlatform | HttpApiGroup.ToService<ApiId, SelectedGroups> | HttpApiEndpoint.Middleware<HttpApiGroup.Endpoints<Groups>> | import("./HttpApiMiddleware.ts").MiddlewareClient<HttpApiEndpoint.Middleware<HttpApiGroup.Endpoints<Groups>>>>;
//# sourceMappingURL=HttpApiTest.d.ts.map