import Service from "../../service";
import { CreateCompanyWebhookRequest } from '../../typings/management/models';
import { GenerateHmacKeyResponse } from '../../typings/management/models';
import { ListWebhooksResponse } from '../../typings/management/models';
import { TestCompanyWebhookRequest } from '../../typings/management/models';
import { TestWebhookResponse } from '../../typings/management/models';
import { UpdateCompanyWebhookRequest } from '../../typings/management/models';
import { Webhook } from '../../typings/management/models';
import { IRequest } from "../../typings/requestOptions";
export default class WebhooksCompanyLevelApi extends Service {
    /**
     * @summary Remove a webhook
     * @param companyId The unique identifier of the company account.
     * @param webhookId Unique identifier of the webhook configuration.
     */
    removeWebhook(companyId: string, webhookId: string, requestOptions?: IRequest.Options): Promise<void>;
    /**
     * @summary List all webhooks
     * @param companyId Unique identifier of the [company account](https://docs.adyen.com/account/account-structure#company-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(companyId: string, requestOptions?: IRequest.Options): Promise<ListWebhooksResponse>;
    /**
     * @summary Get a webhook
     * @param companyId Unique identifier of the [company account](https://docs.adyen.com/account/account-structure#company-account).
     * @param webhookId Unique identifier of the webhook configuration.
     */
    getWebhook(companyId: string, webhookId: string, requestOptions?: IRequest.Options): Promise<Webhook>;
    /**
     * @summary Update a webhook
     * @param companyId The unique identifier of the company account.
     * @param webhookId Unique identifier of the webhook configuration.
     * @param updateCompanyWebhookRequest
     */
    updateWebhook(companyId: string, webhookId: string, updateCompanyWebhookRequest: UpdateCompanyWebhookRequest, requestOptions?: IRequest.Options): Promise<Webhook>;
    /**
     * @summary Set up a webhook
     * @param companyId Unique identifier of the [company account](https://docs.adyen.com/account/account-structure#company-account).
     * @param createCompanyWebhookRequest
     */
    setUpWebhook(companyId: string, createCompanyWebhookRequest: CreateCompanyWebhookRequest, requestOptions?: IRequest.Options): Promise<Webhook>;
    /**
     * @summary Generate an HMAC key
     * @param companyId The unique identifier of the company account.
     * @param webhookId Unique identifier of the webhook configuration.
     */
    generateHmacKey(companyId: string, webhookId: string, requestOptions?: IRequest.Options): Promise<GenerateHmacKeyResponse>;
    /**
     * @summary Test a webhook
     * @param companyId The unique identifier of the company account.
     * @param webhookId Unique identifier of the webhook configuration.
     * @param testCompanyWebhookRequest
     */
    testWebhook(companyId: string, webhookId: string, testCompanyWebhookRequest: TestCompanyWebhookRequest, requestOptions?: IRequest.Options): Promise<TestWebhookResponse>;
}
