import { ApiClient } from '../../client/index.js';
import { CreateAssetsWebhookParams, CreateWorkflowWebhookParams, WorkflowEvent, EditAssetsWebhookParams, ListAssetsWebhooksParams } from './requests.js';
import { CreateAssetsWebhookResult, GetWorkflowWebhookResult, GetAssetsWebhookResult, ListAssetsWebhooksResult, ListWorkflowWebhooksResult } from './responses.js';

declare class WebhooksApi {
    private _client;
    /**
     * Create an instance of the WebhooksApi class.
     *
     * Create, list, read, ping, edit, and delete Acquia DAM webhook configurations. Create, List, and Delete Workflow Webhooks
     *
     * @param client Provide an instance of ApiClient.
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks}
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Workflow-Webhooks}
     */
    constructor(client: ApiClient);
    /**
     * Create a new Assets webhook
     * @param params Information about the request
     * @returns Promise containing the new webhook configuration ID
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks/operation/createWebhook}
     */
    createAssetsWebhook(params: CreateAssetsWebhookParams): Promise<CreateAssetsWebhookResult>;
    /**
     * Create a Workflow webhook
     * @param params Information about the request
     * @returns Promise containing information about the created webhook
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Workflow-Webhooks/operation/workflowAddWebhook}
     */
    createWorkflowWebhook(params: CreateWorkflowWebhookParams): Promise<GetWorkflowWebhookResult>;
    /**
     * Delete an Assets webhook
     * @param id Assets Webhook configuration ID
     * @returns Promise containing no information
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks/operation/deleteWebhook}
     */
    deleteAssetsWebhook(id: string): Promise<void>;
    /**
     * Delete a Workflow webhook
     * @param event The event name
     * @returns Promise containing no information
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Workflow-Webhooks/operation/workflowDeleteWebhook}
     */
    deleteWorkflowWebhook(event: WorkflowEvent): Promise<void>;
    /**
     * Edit an Assets webhook configuration
     * @param params Information about the request
     * @returns Promise containing no information
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks/operation/deleteWebhook}
     */
    editAssetsWebhook(params: EditAssetsWebhookParams): Promise<void>;
    /**
     * Retrieve information about an Assets webhook
     * @param id Webhook configuration ID
     * @returns Promise containing information about a webhook
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks/operation/getWebhook}
     */
    getAssetsWebhook(id: string): Promise<GetAssetsWebhookResult>;
    /**
     * Retrieve a list of Assets webhooks
     * @param params Information about the request
     * @returns Promise containing a list of Assets webhooks
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks/operation/listWebhooks}
     */
    listAssetsWebhooks(params?: ListAssetsWebhooksParams): Promise<ListAssetsWebhooksResult>;
    /**
     * Retrieve a list of active Workflow webhooks
     * @returns Promise containing a list of Workflow webhooks
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Workflow-Webhooks/operation/workflowListWebhooks}
     */
    listWorkflowWebhooks(): Promise<ListWorkflowWebhooksResult>;
    /**
     * Ping an Assets Webhook
     * @param id Assets Webhook Configuration ID
     * @returns Promise containing no information
     * @see {@link https://docs.acquia.com/acquia-dam/api-v2#tag/Acquia-DAM-Webhooks/operation/pingWebhook}
     */
    pingAssetsWebhook(id: string): Promise<void>;
}

export { WebhooksApi };
