export type OutboundWebhookEventType = 'spec.created' | 'spec.approved' | 'spec.status_changed' | 'spec.done' | 'spec.drift_detected' | 'feedback.submitted' | 'validate.failed';
export interface OutboundWebhookConfig {
    readonly id: string;
    readonly url: string;
    /** HMAC-SHA256 secret for X-Planu-Signature header */
    readonly secret: string;
    /** Subset of OutboundWebhookEventType to listen to. Empty = all events. */
    readonly events: OutboundWebhookEventType[];
    readonly active: boolean;
    readonly createdAt: string;
    readonly label?: string;
}
export interface OutboundWebhookPayload {
    readonly event: OutboundWebhookEventType;
    readonly specId: string;
    readonly specTitle: string;
    readonly status: string;
    readonly timestamp: string;
    readonly projectPath: string;
}
export interface OutboundWebhookDelivery {
    readonly webhookId: string;
    readonly deliveredAt: string;
    readonly event: OutboundWebhookEventType;
    readonly statusCode: number;
    readonly latencyMs: number;
    readonly success: boolean;
    readonly error?: string;
}
export interface ConfigureWebhookInput {
    readonly projectPath: string;
    readonly url: string;
    readonly secret: string;
    readonly events?: OutboundWebhookEventType[];
    readonly label?: string;
}
export interface OutboundWebhookStatusInput {
    readonly projectPath: string;
    readonly webhookId?: string;
}
export interface RemoveWebhookInput {
    readonly projectPath: string;
    readonly webhookId: string;
}
export interface WebhookAttemptResult {
    readonly statusCode: number;
    readonly latencyMs: number;
    readonly success: boolean;
    readonly error?: string;
}
//# sourceMappingURL=outbound-webhook.d.ts.map