/** * surface-approval-delivery.ts, per-surface rendering of an approval update. * * Split out of surface-delivery.ts, which was over the 800-line cap. These * four are a cohesive block: each takes the same approval + route binding and * differs only in how that surface expresses "approve / deny / here is the * console link". Nothing here decides WHICH surface to use, that stays in * DaemonSurfaceDeliveryHelper.notifyApprovalUpdate, the one router. * * Every function takes its collaborators as an object rather than a bound * method. Passing `configManager.get` on its own would lose the receiver and * throw inside the ConfigManager (`this.resolvePath` is undefined), the same * defect class this round fixed in the control-plane gateway registration. */ import type { ConfigManager } from '../config/manager.js'; import type { ServiceRegistry } from '../config/service-registry.js'; import type { SharedApprovalRecord } from '../control-plane/index.js'; type RouteBinding = import('../automation/routes.js').AutomationRouteBinding; export interface SurfaceApprovalDeliveryDeps { readonly serviceRegistry: Pick; readonly configManager: Pick; readonly controlPlaneWebUrl: (input: { readonly approvalId?: string; readonly sessionId?: string | undefined; }) => string | undefined; readonly resolveSlackWebhookUrl: () => Promise; readonly resolveSlackBotToken: () => Promise; readonly signWebhookPayload: (body: string, secret: string) => string; } export declare function deliverSlackApprovalUpdate(deps: SurfaceApprovalDeliveryDeps, approval: SharedApprovalRecord, binding: RouteBinding): Promise; export declare function deliverDiscordApprovalUpdate(deps: SurfaceApprovalDeliveryDeps, approval: SharedApprovalRecord, binding: RouteBinding): Promise; export declare function deliverNtfyApprovalUpdate(deps: SurfaceApprovalDeliveryDeps, approval: SharedApprovalRecord, binding: RouteBinding): Promise; export declare function deliverWebhookApprovalUpdate(deps: SurfaceApprovalDeliveryDeps, approval: SharedApprovalRecord, binding: RouteBinding): Promise; export {}; //# sourceMappingURL=surface-approval-delivery.d.ts.map