/**
 * PagerDuty Alert Channel
 *
 * Sends security alerts to PagerDuty via Events API v2.
 * Supports incident creation, acknowledgment, and resolution.
 *
 * @packageDocumentation
 * @module security/alerting/channels/pagerduty
 */
import { type SecurityAlert, type AlertDeliveryResult } from '../types.js';
import { HttpAlertChannel, type HttpChannelConfig } from './http-base.js';
import type { SendInternalResult } from './base.js';
export interface PagerDutyChannelConfig extends HttpChannelConfig {
    /** PagerDuty Events API v2 routing key (integration key) */
    routingKey: string;
    /** PagerDuty Events API URL (default: https://events.pagerduty.com/v2/enqueue) */
    apiUrl?: string;
    /** Service name for events */
    serviceName?: string;
    /** Custom component name */
    component?: string;
    /** Custom group name */
    group?: string;
    /** Custom class name */
    class?: string;
}
/**
 * PagerDuty Events API integration for security alerts
 */
export declare class PagerDutyAlertChannel extends HttpAlertChannel {
    protected readonly channelType: "pagerduty";
    protected readonly channelName = "PagerDuty";
    protected readonly logger: import("pino").Logger<never>;
    private readonly routingKey;
    private readonly apiUrl;
    private readonly serviceName;
    private readonly component;
    private readonly group;
    private readonly classValue;
    constructor(config: PagerDutyChannelConfig);
    /**
     * Send an alert to PagerDuty (trigger an incident)
     */
    protected sendInternal(alert: SecurityAlert): Promise<SendInternalResult>;
    /**
     * Acknowledge an alert in PagerDuty
     */
    acknowledge(alert: SecurityAlert): Promise<AlertDeliveryResult>;
    /**
     * Resolve an alert in PagerDuty
     */
    resolve(alert: SecurityAlert): Promise<AlertDeliveryResult>;
    /**
     * Send an event to PagerDuty
     */
    private sendEvent;
    /**
     * Format alert as PagerDuty payload
     */
    private formatPayload;
    /**
     * Test the PagerDuty connection
     */
    test(): Promise<boolean>;
}
/**
 * Create a new PagerDuty alert channel
 */
export declare function createPagerDutyChannel(config: PagerDutyChannelConfig): PagerDutyAlertChannel;
//# sourceMappingURL=pagerduty.d.ts.map