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 { ClientsClient } from "../resources/clients/client/Client.js";
import { DirectoryProvisioningClient } from "../resources/directoryProvisioning/client/Client.js";
import { KeysClient } from "../resources/keys/client/Client.js";
import { ScimConfigurationClient } from "../resources/scimConfiguration/client/Client.js";
import { UsersClient } from "../resources/users/client/Client.js";
export declare namespace ConnectionsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class ConnectionsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<ConnectionsClient.Options>;
    protected _directoryProvisioning: DirectoryProvisioningClient | undefined;
    protected _scimConfiguration: ScimConfigurationClient | undefined;
    protected _clients: ClientsClient | undefined;
    protected _keys: KeysClient | undefined;
    protected _users: UsersClient | undefined;
    constructor(options: ConnectionsClient.Options);
    get directoryProvisioning(): DirectoryProvisioningClient;
    get scimConfiguration(): ScimConfigurationClient;
    get clients(): ClientsClient;
    get keys(): KeysClient;
    get users(): UsersClient;
    /**
     * Retrieves detailed list of all <a href="https://auth0.com/docs/authenticate/identity-providers">connections</a> that match the specified strategy. If no strategy is provided, all connections within your tenant are retrieved. This action can accept a list of fields to include or exclude from the resulting list of connections.
     *
     * This endpoint supports two types of pagination:
     * <ul>
     * <li>Offset pagination</li>
     * <li>Checkpoint pagination</li>
     * </ul>
     *
     * Checkpoint pagination must be used if you need to retrieve more than 1000 connections.
     *
     * <h2>Checkpoint Pagination</h2>
     *
     * To search by checkpoint, use the following parameters:
     * <ul>
     * <li><code>from</code>: Optional id from which to start selection.</li>
     * <li><code>take</code>: The total amount of entries to retrieve when using the from parameter. Defaults to 50.</li>
     * </ul>
     *
     * <b>Note</b>: The first time you call this endpoint using checkpoint pagination, omit the <code>from</code> parameter. If there are more results, a <code>next</code> value is included in the response. You can use this for subsequent API calls. When <code>next</code> is no longer included in the response, no pages are remaining.
     *
     * @param {Management.ListConnectionsQueryParameters} request
     * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.connections.list({
     *         from: "from",
     *         take: 1,
     *         name: "name",
     *         fields: "fields",
     *         include_fields: true
     *     })
     */
    list(request?: Management.ListConnectionsQueryParameters, requestOptions?: ConnectionsClient.RequestOptions): Promise<core.Page<Management.ConnectionForList, Management.ListConnectionsCheckpointPaginatedResponseContent>>;
    /**
     * Creates a new connection according to the JSON object received in <code>body</code>.
     *
     * <b>Note:</b> If a connection with the same name was recently deleted and had a large number of associated users, the deletion may still be processing. Creating a new connection with that name before the deletion completes may fail or produce unexpected results.
     *
     * @param {Management.CreateConnectionRequestContent} request
     * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.ConflictError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.connections.create({
     *         name: "name",
     *         strategy: "ad"
     *     })
     */
    create(request: Management.CreateConnectionRequestContent, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise<Management.CreateConnectionResponseContent>;
    private __create;
    /**
     * Retrieve details for a specified <a href="https://auth0.com/docs/authenticate/identity-providers">connection</a> along with options that can be used for identity provider configuration.
     *
     * @param {string} id - The id of the connection to retrieve
     * @param {Management.GetConnectionRequestParameters} request
     * @param {ConnectionsClient.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.connections.get("id", {
     *         fields: "fields",
     *         include_fields: true
     *     })
     */
    get(id: string, request?: Management.GetConnectionRequestParameters, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise<Management.GetConnectionResponseContent>;
    private __get;
    /**
     * Removes a specific <a href="https://auth0.com/docs/authenticate/identity-providers">connection</a> from your tenant. This action cannot be undone. Once removed, users can no longer use this connection to authenticate.
     *
     * <b>Note:</b> If your connection has a large amount of users associated with it, please be aware that this operation can be long running after the response is returned and may impact concurrent <a href="https://auth0.com/docs/api/management/v2/connections/post-connections">create connection</a> requests, if they use an identical connection name.
     *
     * @param {string} id - The id of the connection to delete
     * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.connections.delete("id")
     */
    delete(id: string, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
    /**
     * Update details for a specific <a href="https://auth0.com/docs/authenticate/identity-providers">connection</a>, including option properties for identity provider configuration.
     *
     * <b>Note</b>: If you use the <code>options</code> parameter, the entire <code>options</code> object is overriden. To avoid partial data or other issues, ensure all parameters are present when using this option.
     *
     * @param {string} id - The id of the connection to update
     * @param {Management.UpdateConnectionRequestContent} request
     * @param {ConnectionsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.ConflictError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.connections.update("id")
     */
    update(id: string, request?: Management.UpdateConnectionRequestContent, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise<Management.UpdateConnectionResponseContent>;
    private __update;
    /**
     * Retrieves the status of an ad/ldap connection referenced by its <code>ID</code>. <code>200 OK</code> http status code response is returned  when the connection is online, otherwise a <code>404</code> status code is returned along with an error message
     *
     * @param {string} id - ID of the connection to check
     * @param {ConnectionsClient.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.connections.checkStatus("id")
     */
    checkStatus(id: string, requestOptions?: ConnectionsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __checkStatus;
}
