import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import * as Voltaria from "../../../index.js";
export declare namespace WebhooksClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class WebhooksClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<WebhooksClient.Options>;
    constructor(options: WebhooksClient.Options);
    /**
     * List all webhook subscriptions for your partner account.
     *
     * @param {Voltaria.ListWebhookSubscriptionsRequest} request
     * @param {WebhooksClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Voltaria.UnprocessableEntityError}
     *
     * @example
     *     await client.webhooks.listWebhookSubscriptions()
     */
    listWebhookSubscriptions(request?: Voltaria.ListWebhookSubscriptionsRequest, requestOptions?: WebhooksClient.RequestOptions): core.HttpResponsePromise<Voltaria.PaginatedResponseWebhookSubscriptionResponse>;
    private __listWebhookSubscriptions;
    /**
     * Create a new webhook subscription for a specific event type.
     *
     * @param {Voltaria.WebhookCreatePayload} request
     * @param {WebhooksClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Voltaria.UnprocessableEntityError}
     *
     * @example
     *     await client.webhooks.createWebhookSubscription({
     *         url: "https://example.com/webhooks",
     *         description: "Loan update event",
     *         event_type: "loan.updated",
     *         secret: "whsec_f3o9p8h7g6j5k4l3m2n1o0p9i8u7y6t5",
     *         retry: false,
     *         status: "active"
     *     })
     */
    createWebhookSubscription(request: Voltaria.WebhookCreatePayload, requestOptions?: WebhooksClient.RequestOptions): core.HttpResponsePromise<Voltaria.WebhookSubscriptionResponse>;
    private __createWebhookSubscription;
    /**
     * Retrieve details for a specific webhook subscription with its webhook ID.
     *
     * @param {Voltaria.GetWebhookSubscriptionRequest} request
     * @param {WebhooksClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Voltaria.NotFoundError}
     * @throws {@link Voltaria.UnprocessableEntityError}
     *
     * @example
     *     await client.webhooks.getWebhookSubscription({
     *         webhook_id: "webhook_id"
     *     })
     */
    getWebhookSubscription(request: Voltaria.GetWebhookSubscriptionRequest, requestOptions?: WebhooksClient.RequestOptions): core.HttpResponsePromise<Voltaria.WebhookSubscriptionResponse>;
    private __getWebhookSubscription;
    /**
     * Update a webhook subscription with its specific webhook ID.
     *
     * @param {Voltaria.WebhookUpdatePayload} request
     * @param {WebhooksClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Voltaria.NotFoundError}
     * @throws {@link Voltaria.UnprocessableEntityError}
     *
     * @example
     *     await client.webhooks.updateWebhookSubscription({
     *         webhook_id: "webhook_id",
     *         url: "https://example.com/webhooks/v2",
     *         description: "Updated webhook endpoint",
     *         event_type: "installment.updated",
     *         status: "paused",
     *         retry: true,
     *         secret: "whsec_updated_secret_here"
     *     })
     */
    updateWebhookSubscription(request: Voltaria.WebhookUpdatePayload, requestOptions?: WebhooksClient.RequestOptions): core.HttpResponsePromise<Voltaria.WebhookSubscriptionResponse>;
    private __updateWebhookSubscription;
    /**
     * Delete a specific webhook subscription.
     *
     * @param {Voltaria.DeleteWebhookSubscriptionRequest} request
     * @param {WebhooksClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Voltaria.NotFoundError}
     * @throws {@link Voltaria.UnprocessableEntityError}
     *
     * @example
     *     await client.webhooks.deleteWebhookSubscription({
     *         webhook_id: "webhook_id"
     *     })
     */
    deleteWebhookSubscription(request: Voltaria.DeleteWebhookSubscriptionRequest, requestOptions?: WebhooksClient.RequestOptions): core.HttpResponsePromise<Record<string, unknown>>;
    private __deleteWebhookSubscription;
    /**
     * Retrieve all webhook logs linked to your partner account.
     *
     * @param {Voltaria.ListWebhookLogsRequest} request
     * @param {WebhooksClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Voltaria.UnprocessableEntityError}
     *
     * @example
     *     await client.webhooks.listWebhookLogs()
     */
    listWebhookLogs(request?: Voltaria.ListWebhookLogsRequest, requestOptions?: WebhooksClient.RequestOptions): core.HttpResponsePromise<Voltaria.PaginatedResponseWebhookLogResponse>;
    private __listWebhookLogs;
}
