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 { DeliveriesClient } from "../resources/deliveries/client/Client.js";
import { RedeliveriesClient } from "../resources/redeliveries/client/Client.js";
export declare namespace EventStreamsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class EventStreamsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<EventStreamsClient.Options>;
    protected _deliveries: DeliveriesClient | undefined;
    protected _redeliveries: RedeliveriesClient | undefined;
    constructor(options: EventStreamsClient.Options);
    get deliveries(): DeliveriesClient;
    get redeliveries(): RedeliveriesClient;
    /**
     * @param {Management.ListEventStreamsRequestParameters} request
     * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.eventStreams.list({
     *         from: "from",
     *         take: 1
     *     })
     */
    list(request?: Management.ListEventStreamsRequestParameters, requestOptions?: EventStreamsClient.RequestOptions): Promise<core.Page<Management.EventStreamResponseContent, Management.ListEventStreamsResponseContent>>;
    /**
     * @param {Management.EventStreamsCreateRequest} request
     * @param {EventStreamsClient.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.eventStreams.create({
     *         destination: {
     *             type: "webhook",
     *             configuration: {
     *                 webhook_endpoint: "webhook_endpoint",
     *                 webhook_authorization: {
     *                     method: "basic",
     *                     username: "username"
     *                 }
     *             }
     *         }
     *     })
     */
    create(request: Management.EventStreamsCreateRequest, requestOptions?: EventStreamsClient.RequestOptions): core.HttpResponsePromise<Management.CreateEventStreamResponseContent>;
    private __create;
    /**
     * @param {string} id - Unique identifier for the event stream.
     * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.NotFoundError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.eventStreams.get("id")
     */
    get(id: string, requestOptions?: EventStreamsClient.RequestOptions): core.HttpResponsePromise<Management.GetEventStreamResponseContent>;
    private __get;
    /**
     * @param {string} id - Unique identifier for the event stream.
     * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.eventStreams.delete("id")
     */
    delete(id: string, requestOptions?: EventStreamsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
    /**
     * @param {string} id - Unique identifier for the event stream.
     * @param {Management.UpdateEventStreamRequestContent} request
     * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.eventStreams.update("id")
     */
    update(id: string, request?: Management.UpdateEventStreamRequestContent, requestOptions?: EventStreamsClient.RequestOptions): core.HttpResponsePromise<Management.UpdateEventStreamResponseContent>;
    private __update;
    /**
     * @param {string} id - Unique identifier for the event stream.
     * @param {Management.CreateEventStreamTestEventRequestContent} request
     * @param {EventStreamsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.eventStreams.test("id", {
     *         event_type: "group.created"
     *     })
     */
    test(id: string, request: Management.CreateEventStreamTestEventRequestContent, requestOptions?: EventStreamsClient.RequestOptions): core.HttpResponsePromise<Management.CreateEventStreamTestEventResponseContent>;
    private __test;
}
