import Service from "../../service";
import { CreateMerchantWebhookRequest } from '../../typings/management/models';
import { GenerateHmacKeyResponse } from '../../typings/management/models';
import { ListWebhooksResponse } from '../../typings/management/models';
import { TestWebhookRequest } from '../../typings/management/models';
import { TestWebhookResponse } from '../../typings/management/models';
import { UpdateMerchantWebhookRequest } from '../../typings/management/models';
import { Webhook } from '../../typings/management/models';
import { IRequest } from "../../typings/requestOptions";
export default class WebhooksMerchantLevelApi extends Service {
    /**
     * @summary Remove a webhook
     * @param merchantId The unique identifier of the merchant account.
     * @param webhookId Unique identifier of the webhook configuration.
     */
    removeWebhook(merchantId: string, webhookId: string, requestOptions?: IRequest.Options): Promise<void>;
    /**
     * @summary List all webhooks
     * @param merchantId The unique identifier of the merchant account.
     * @param pageNumber The number of the page to fetch.
     * @param pageSize The number of items to have on a page, maximum 100. The default is 10 items on a page.
     */
    listAllWebhooks(merchantId: string, requestOptions?: IRequest.Options): Promise<ListWebhooksResponse>;
    /**
     * @summary Get a webhook
     * @param merchantId The unique identifier of the merchant account.
     * @param webhookId Unique identifier of the webhook configuration.
     */
    getWebhook(merchantId: string, webhookId: string, requestOptions?: IRequest.Options): Promise<Webhook>;
    /**
     * @summary Update a webhook
     * @param merchantId The unique identifier of the merchant account.
     * @param webhookId Unique identifier of the webhook configuration.
     * @param updateMerchantWebhookRequest
     */
    updateWebhook(merchantId: string, webhookId: string, updateMerchantWebhookRequest: UpdateMerchantWebhookRequest, requestOptions?: IRequest.Options): Promise<Webhook>;
    /**
     * @summary Set up a webhook
     * @param merchantId The unique identifier of the merchant account.
     * @param createMerchantWebhookRequest
     */
    setUpWebhook(merchantId: string, createMerchantWebhookRequest: CreateMerchantWebhookRequest, requestOptions?: IRequest.Options): Promise<Webhook>;
    /**
     * @summary Generate an HMAC key
     * @param merchantId The unique identifier of the merchant account.
     * @param webhookId
     */
    generateHmacKey(merchantId: string, webhookId: string, requestOptions?: IRequest.Options): Promise<GenerateHmacKeyResponse>;
    /**
     * @summary Test a webhook
     * @param merchantId The unique identifier of the merchant account.
     * @param webhookId Unique identifier of the webhook configuration.
     * @param testWebhookRequest
     */
    testWebhook(merchantId: string, webhookId: string, testWebhookRequest: TestWebhookRequest, requestOptions?: IRequest.Options): Promise<TestWebhookResponse>;
}
