import type { FeedbackEventEnvelope, FrozenWebhookDestination } from './feedback-outbox.js'; import type { SkillFeedbackStore } from './skill-feedback-store.js'; export interface AddressRecord { address: string; family: 4 | 6; } type Lookup = (hostname: string) => Promise; export declare function validateWebhookDestination(url: string, options?: { lookup?: Lookup; allowPrivateNetworks?: boolean; }): Promise<{ url: URL; hostname: string; addresses: AddressRecord[]; }>; export declare class FeedbackWebhookSecretStore { private readonly path; constructor(dataDir: string); private read; put(destinationId: string, secret: string): string; get(ref: string): string | undefined; clear(ref: string): boolean; } export declare function classifyWebhookResponse(status: number): 'delivered' | 'retry' | 'failed'; export declare function computeRetryDelay(input: { attempts: number; retryAfter?: string; now?: number; random?: () => number; baseDelayMs?: number; maxDelayMs?: number; }): number; export interface WebhookRequestInput { url: URL; headers: Record; body: string; timeoutMs: number; redirect: 'error'; pinnedAddress: string; signal?: AbortSignal; } export declare function dispatchWebhookAttempt(input: { destination: FrozenWebhookDestination; event: FeedbackEventEnvelope; secret: string; now?: () => number; lookup?: Lookup; request?: (input: WebhookRequestInput) => Promise<{ status: number; headers: Record; body: string; }>; allowPrivateNetworks?: boolean; signal?: AbortSignal; }): Promise<{ kind: 'delivered' | 'retry' | 'failed'; status?: number; retryAfter?: string; error?: string; }>; export declare function startFeedbackWebhookDispatcher(options: { store: SkillFeedbackStore; readSecret: (ref: string) => string | undefined; dispatch?: typeof dispatchWebhookAttempt; intervalMs?: number; staleClaimMs?: number; batchSize?: number; shutdownMs?: number; allowPrivateNetworks?: boolean; onError?: (error: unknown) => void; }): { ready: Promise; stop: (timeoutMs?: number) => Promise; }; export {}; //# sourceMappingURL=feedback-webhook-dispatcher.d.ts.map