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";
export declare namespace RateLimitPoliciesClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class RateLimitPoliciesClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<RateLimitPoliciesClient.Options>;
    constructor(options: RateLimitPoliciesClient.Options);
    /**
     * @param {Management.ListRateLimitPoliciesRequestParameters} request
     * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.rateLimitPolicies.list({
     *         resource: "oauth_authentication_api",
     *         consumer: "client",
     *         consumer_selector: "consumer_selector",
     *         take: 1,
     *         from: "from"
     *     })
     */
    list(request?: Management.ListRateLimitPoliciesRequestParameters, requestOptions?: RateLimitPoliciesClient.RequestOptions): Promise<core.Page<Management.RateLimitPolicy, Management.ListRateLimitPoliciesPaginatedResponseContent>>;
    /**
     * @param {Management.CreateRateLimitPolicyRequestContent} request
     * @param {RateLimitPoliciesClient.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.rateLimitPolicies.create({
     *         resource: "oauth_authentication_api",
     *         consumer: "client",
     *         consumer_selector: "consumer_selector",
     *         configuration: {
     *             action: "allow"
     *         }
     *     })
     */
    create(request: Management.CreateRateLimitPolicyRequestContent, requestOptions?: RateLimitPoliciesClient.RequestOptions): core.HttpResponsePromise<Management.CreateRateLimitPolicyResponseContent>;
    private __create;
    /**
     * @param {string} id - Unique identifier for the Rate Limit Policy.
     * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.rateLimitPolicies.get("id")
     */
    get(id: string, requestOptions?: RateLimitPoliciesClient.RequestOptions): core.HttpResponsePromise<Management.GetRateLimitPolicyResponseContent>;
    private __get;
    /**
     * @param {string} id - Unique identifier for the Rate Limit Policy.
     * @param {RateLimitPoliciesClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.rateLimitPolicies.delete("id")
     */
    delete(id: string, requestOptions?: RateLimitPoliciesClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
    /**
     * @param {string} id - Unique identifier for the Rate Limit Policy.
     * @param {Management.PatchRateLimitPolicyRequestContent} request
     * @param {RateLimitPoliciesClient.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.rateLimitPolicies.update("id", {
     *         configuration: {
     *             action: "allow"
     *         }
     *     })
     */
    update(id: string, request: Management.PatchRateLimitPolicyRequestContent, requestOptions?: RateLimitPoliciesClient.RequestOptions): core.HttpResponsePromise<Management.UpdateRateLimitPolicyResponseContent>;
    private __update;
}
