import { type ToolContext, type ToolHandlerActionPolicyContext } from "@voyant-travel/tools"; import { z } from "zod"; import { notificationChannelSchema, notificationDeliveryListQuerySchema, notificationTemplateListQuerySchema } from "./validation.js"; export interface SendTemplatedNotificationInput { templateSlug: string; to: string; channel?: z.infer; data?: Record; bookingId?: string; invoiceId?: string; personId?: string; organizationId?: string; } export interface NotificationsToolServices { listDeliveries(query: z.infer): Promise; getDeliveryById(id: string): Promise; listTemplates(query: z.infer): Promise; getTemplateById(id: string): Promise; getTemplateBySlug(slug: string): Promise; sendTemplated(input: SendTemplatedNotificationInput, admitted: ToolHandlerActionPolicyContext): Promise; } export type NotificationsToolContext = ToolContext & { notifications?: NotificationsToolServices; }; export declare const listDeliveriesTool: import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; channel?: "email" | "sms" | undefined; provider?: string | undefined; status?: "pending" | "sent" | "failed" | "cancelled" | undefined; templateSlug?: string | undefined; targetType?: "booking" | "booking_payment_schedule" | "booking_guarantee" | "invoice" | "payment_session" | "person" | "organization" | "other" | undefined; targetId?: string | undefined; bookingId?: string | undefined; invoiceId?: string | undefined; paymentSessionId?: string | undefined; personId?: string | undefined; organizationId?: string | undefined; }, unknown, NotificationsToolContext>; export declare const getDeliveryTool: import("@voyant-travel/tools").ToolDefinition<{ id: string; }, unknown, NotificationsToolContext>; export declare const listTemplatesTool: import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; channel?: "email" | "sms" | undefined; provider?: string | undefined; status?: "draft" | "active" | "archived" | undefined; search?: string | undefined; }, unknown, NotificationsToolContext>; export declare const getTemplateTool: import("@voyant-travel/tools").ToolDefinition<{ id?: string | undefined; slug?: string | undefined; }, unknown, NotificationsToolContext>; export declare const SEND_NOTIFICATION_HANDLER_POLICY: { readonly capabilityId: "@voyant-travel/notifications#tool.send-notification"; readonly capabilityVersion: "v2"; readonly canonicalName: "send_notification"; readonly actionPolicy: { readonly id: "@voyant-travel/notifications#action.send-notification"; readonly capabilityId: "@voyant-travel/notifications#action.send-notification"; readonly version: "v2"; readonly kind: "execute"; readonly targetType: "notification-template"; readonly commandTargetField: "templateSlug"; readonly targetLifecycle: "existing"; readonly existingTarget: { readonly durability: "handler-command-result-v1"; }; readonly risk: "high"; readonly ledger: "required"; readonly approval: "required"; readonly policy: "notifications-agent-send"; readonly reversible: false; }; }; export declare const sendNotificationTool: import("@voyant-travel/tools").ToolDefinition<{ templateSlug: string; to: string; channel?: "email" | "sms" | undefined; data?: Record | undefined; bookingId?: string | undefined; invoiceId?: string | undefined; personId?: string | undefined; organizationId?: string | undefined; }, unknown, NotificationsToolContext>; export declare const notificationsTools: readonly [import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; channel?: "email" | "sms" | undefined; provider?: string | undefined; status?: "pending" | "sent" | "failed" | "cancelled" | undefined; templateSlug?: string | undefined; targetType?: "booking" | "booking_payment_schedule" | "booking_guarantee" | "invoice" | "payment_session" | "person" | "organization" | "other" | undefined; targetId?: string | undefined; bookingId?: string | undefined; invoiceId?: string | undefined; paymentSessionId?: string | undefined; personId?: string | undefined; organizationId?: string | undefined; }, unknown, NotificationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ id: string; }, unknown, NotificationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; channel?: "email" | "sms" | undefined; provider?: string | undefined; status?: "draft" | "active" | "archived" | undefined; search?: string | undefined; }, unknown, NotificationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ id?: string | undefined; slug?: string | undefined; }, unknown, NotificationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ templateSlug: string; to: string; channel?: "email" | "sms" | undefined; data?: Record | undefined; bookingId?: string | undefined; invoiceId?: string | undefined; personId?: string | undefined; organizationId?: string | undefined; }, unknown, NotificationsToolContext>];