import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import * as Management from "../../../index.js";
import { MembersClient } from "../resources/members/client/Client.js";
export declare namespace GroupsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class GroupsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<GroupsClient.Options>;
    protected _members: MembersClient | undefined;
    constructor(options: GroupsClient.Options);
    get members(): MembersClient;
    /**
     * List all groups in your tenant.
     *
     * @param {Management.ListGroupsRequestParameters} request
     * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.groups.list({
     *         connection_id: "connection_id",
     *         name: "name",
     *         external_id: "external_id",
     *         fields: "fields",
     *         include_fields: true,
     *         from: "from",
     *         take: 1
     *     })
     */
    list(request?: Management.ListGroupsRequestParameters, requestOptions?: GroupsClient.RequestOptions): Promise<core.Page<Management.Group, Management.ListGroupsPaginatedResponseContent>>;
    /**
     * Retrieve a group by its ID.
     *
     * @param {string} id - Unique identifier for the group (service-generated).
     * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.groups.get("id")
     */
    get(id: string, requestOptions?: GroupsClient.RequestOptions): core.HttpResponsePromise<Management.GetGroupResponseContent>;
    private __get;
    /**
     * Delete a group by its ID.
     *
     * @param {string} id - Unique identifier for the group (service-generated).
     * @param {GroupsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.groups.delete("id")
     */
    delete(id: string, requestOptions?: GroupsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
}
