import { EncryptionService } from "../common/crypto/encryption.service";
import { PrismaService } from "../prisma/prisma.service";
import type { CreateWebhookEndpointDto } from "./dto/create-webhook-endpoint.dto";
import type { UpdateWebhookEndpointDto } from "./dto/update-webhook-endpoint.dto";
export declare class WebhookEndpointService {
    private readonly prisma;
    private readonly encryption;
    constructor(prisma: PrismaService, encryption: EncryptionService);
    create(merchantId: string, dto: CreateWebhookEndpointDto): Promise<{
        secret: string;
        id: string;
        merchantId: string;
        url: string;
        subscribedEvents: string[];
        active: boolean;
        description: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    findOne(merchantId: string, id: string): Promise<{
        id: string;
        merchantId: string;
        url: string;
        subscribedEvents: string[];
        active: boolean;
        description: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    list(merchantId: string, limit?: number, cursor?: string): Promise<{
        data: {
            id: string;
            merchantId: string;
            url: string;
            subscribedEvents: string[];
            active: boolean;
            description: string | null;
            createdAt: Date;
            updatedAt: Date;
        }[];
        nextCursor: string | null;
    }>;
    update(merchantId: string, id: string, dto: UpdateWebhookEndpointDto): Promise<{
        id: string;
        merchantId: string;
        url: string;
        subscribedEvents: string[];
        active: boolean;
        description: string | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    remove(merchantId: string, id: string): Promise<{
        deleted: boolean;
        id: string;
    }>;
    getDecryptedSecret(merchantId: string, id: string): Promise<string>;
    private findOneRaw;
    private generateSecret;
    private toDto;
}
