import { AppLoggerService } from 'src/common/services/logger.service';
import { ZoomAnalyticsUrlValidationResponse } from '../utils/zoom-analytics-webhook-signature.util';
import { ZoomAnalyticsConfigService } from './zoom-analytics-config.service';
import { ZoomAnalyticsProviderRegistry } from '../registries/zoom-analytics-provider.registry';
import { ZoomWebinarRepository } from '../repositories/zoom-webinar.repository';
interface ZoomAnalyticsWebhookObject {
    id?: string | number;
    occurrence_id?: string;
    start_time?: string;
    end_time?: string;
    participant?: {
        id?: string;
        email?: string;
        join_time?: string;
        leave_time?: string;
        user_name?: string;
        leave_reason?: string;
    };
}
interface ZoomAnalyticsWebhookBody {
    event?: string;
    payload?: {
        plainToken?: string;
        object?: ZoomAnalyticsWebhookObject;
    };
}
export declare class ZoomAnalyticsWebhookService {
    private readonly config;
    private readonly registry;
    private readonly webinarRepository;
    private readonly logger;
    constructor(config: ZoomAnalyticsConfigService, registry: ZoomAnalyticsProviderRegistry, webinarRepository: ZoomWebinarRepository, logger: AppLoggerService);
    process(body: ZoomAnalyticsWebhookBody, headers: Record<string, unknown>): Promise<ZoomAnalyticsUrlValidationResponse | void>;
    private dispatch;
    private resourceTypeForEvent;
    private onParticipantJoined;
    private onParticipantLeft;
    private onSessionStarted;
    private onSessionEnded;
    private headerValue;
    private toDate;
}
export {};
