import { Webhook } from "../models/Webhook";
import { WebhookRemote } from "../../infra/http/WebhookRemote";
/**
 * Serviço responsável pela lógica de negócios relacionada aos webhooks.
 */
export declare class WebhookService {
    private readonly remote;
    /**
     * Construtor da classe WebhookService.
     * @param remote - Instância da classe WebhookRemote responsável pela comunicação com o servidor.
     */
    constructor(remote: WebhookRemote);
    /**
     * Cria um novo webhook no sistema.
     * @param data - Dados necessários para a criação do webhook, incluindo o endpoint.
     * @returns O objeto Webhook criado.
     */
    create(data: {
        endpoint: string;
    }): Promise<Webhook>;
    /**
     * Busca uma lista de webhooks com base no endpoint fornecido.
     * @param data - Dados para filtrar os webhooks (opcional), incluindo o endpoint.
     * @returns Lista de webhooks que atendem aos critérios fornecidos.
     */
    find(data?: {
        endpoint?: string | null;
    }): Promise<Array<Webhook>>;
    /**
     * Deleta um webhook específico pelo seu ID.
     * @param id - ID do webhook a ser deletado.
     * @returns O objeto Webhook deletado.
     */
    delete(id: number): Promise<Webhook>;
    /**
     * Verifica a assinatura de um payload recebido de um webhook.
     * @param payload - O payload que foi recebido pelo webhook.
     * @param xWebhookSignature - A assinatura fornecida pelo webhook.
     * @param signature - A chave secreta para verificar a assinatura.
     * @returns Retorna `true` se a assinatura for válida, caso contrário `false`.
     */
    verifySignature(payload: any, xWebhookSignature: string, signature: string): boolean;
}
