import * as Models from './models';
import * as Parameters from './parameters';
import { Client } from '../clients';
import { Callback } from '../types';
export declare class Webhooks {
    private client;
    constructor(client: Client);
    /** Create a new webhook. */
    createWebhook<T = Models.Webhook>(parameters: Parameters.CreateWebhook, callback: Callback<T>): Promise<void>;
    /** Create a new webhook. */
    createWebhook<T = Models.Webhook>(parameters: Parameters.CreateWebhook, callback?: never): Promise<T>;
    /** Get a webhook by ID. */
    getWebhook<T = Models.Webhook>(parameters: Parameters.GetWebhook, callback: Callback<T>): Promise<void>;
    /** Get a webhook by ID. */
    getWebhook<T = Models.Webhook>(parameters: Parameters.GetWebhook, callback?: never): Promise<T>;
    /** Update a webhook by ID. */
    updateWebhook<T = Models.Webhook>(parameters: Parameters.UpdateWebhook, callback: Callback<T>): Promise<void>;
    /** Update a webhook by ID. */
    updateWebhook<T = Models.Webhook>(parameters: Parameters.UpdateWebhook, callback?: never): Promise<T>;
    /** Delete a webhook by ID. */
    deleteWebhook<T = unknown>(parameters: Parameters.DeleteWebhook, callback: Callback<T>): Promise<void>;
    /** Delete a webhook by ID. */
    deleteWebhook<T = unknown>(parameters: Parameters.DeleteWebhook, callback?: never): Promise<T>;
    /** Get a field on a Webhook */
    getWebhookField<T = unknown>(parameters: Parameters.GetWebhookField, callback: Callback<T>): Promise<void>;
    /** Get a field on a Webhook */
    getWebhookField<T = unknown>(parameters: Parameters.GetWebhookField, callback?: never): Promise<T>;
}
