import { z } from "zod"; import type { OperationsToolContext } from "./tool-services.js"; export { type OperatorDashboardBookingsServices, type OperatorDashboardDistributionServices, type OperatorDashboardFinanceServices, type OperatorDashboardInventoryServices, type OperatorDashboardToolContext, operatorDashboardSummaryInputSchema, operatorDashboardSummaryOutputSchema, resolveOperatorDashboardWindow, } from "./dashboard-tool.js"; export type { OperationsToolContext, OperationsToolServices } from "./tool-services.js"; export declare const getOperatorDashboardSummaryTool: import("@voyant-travel/tools").ToolDefinition<{ range: "today" | "this-week" | "this-month" | "last-30-days"; }, { range: { key: "today" | "this-week" | "this-month" | "last-30-days"; from: string; to: string; }; generatedAt: string; kpis: { bookings: { total: number; active: number; travelers: number; }; products: { total: number; active: number; publicActive: number; }; suppliers: { total: number; active: number; }; availability: { upcomingDepartures: number; upcomingPax: number; }; revenue: { currency: string; amountCents: number; }[]; outstanding: { currency: string; amountCents: number; count: number; }[]; }; alerts: { kind: "overdue-invoices" | "no-public-products" | "no-active-suppliers" | "no-upcoming-departures"; severity: "warning" | "critical"; count: number; currency: string | null; amountCents: number | null; }[]; projections: { bookings: { total: number; totalPax: number; countsByStatus: { status: string; count: number; }[]; monthlyCounts: { yearMonth: string; count: number; }[]; monthlyRevenue: { yearMonth: string; currency: string; sellAmountCents: number; }[]; upcomingDepartures: { count: number; items: { id: string; bookingNumber: string | null; status: string; startDate: string | null; endDate: string | null; pax: number | null; sellCurrency: string | null; sellAmountCents: number | null; }[]; }; }; products: { total: number; countsByStatus: { status: string; count: number; }[]; active: number; publicActive: number; monthlyCreatedCounts: { yearMonth: string; count: number; }[]; }; suppliers: { total: number; countsByStatus: { status: string; count: number; }[]; countsByType: { type: string; count: number; }[]; active: number; }; finance: { total: number; countsByStatus: { status: string; count: number; }[]; counts: { invoices: { issued: number; paid: number; void: number; overdue: number; }; proformas: { issued: number; converted: number; void: number; }; paymentSessions: { pending: number; paid: number; failed: number; }; }; totals: { currency: string; invoiced: number; collected: number; outstanding: number; refunded: number; }[]; monthlyRevenue: { yearMonth: string; currency: string; totalCents: number; }[]; monthlyInvoiceCounts: { yearMonth: string; count: number; }[]; outstanding: { currency: string; balanceDueCents: number; count: number; }[]; overdue: { currency: string; balanceDueCents: number; count: number; }[]; outstandingTopN: { id: string; invoiceNumber: string | null; bookingId: string | null; status: string; currency: string; totalCents: number; balanceDueCents: number; issueDate: string | null; dueDate: string | null; }[]; }; availability: { total: number; countsByStatus: { status: "open" | "closed" | "sold_out" | "cancelled"; count: number; }[]; upcomingSlots: number; upcomingPax: number; monthlyDepartures: { yearMonth: string; count: number; }[]; }; }; }, import("./dashboard-tool.js").OperatorDashboardToolContext>; export declare const operationsDashboardTools: readonly [import("@voyant-travel/tools").ToolDefinition<{ range: "today" | "this-week" | "this-month" | "last-30-days"; }, { range: { key: "today" | "this-week" | "this-month" | "last-30-days"; from: string; to: string; }; generatedAt: string; kpis: { bookings: { total: number; active: number; travelers: number; }; products: { total: number; active: number; publicActive: number; }; suppliers: { total: number; active: number; }; availability: { upcomingDepartures: number; upcomingPax: number; }; revenue: { currency: string; amountCents: number; }[]; outstanding: { currency: string; amountCents: number; count: number; }[]; }; alerts: { kind: "overdue-invoices" | "no-public-products" | "no-active-suppliers" | "no-upcoming-departures"; severity: "warning" | "critical"; count: number; currency: string | null; amountCents: number | null; }[]; projections: { bookings: { total: number; totalPax: number; countsByStatus: { status: string; count: number; }[]; monthlyCounts: { yearMonth: string; count: number; }[]; monthlyRevenue: { yearMonth: string; currency: string; sellAmountCents: number; }[]; upcomingDepartures: { count: number; items: { id: string; bookingNumber: string | null; status: string; startDate: string | null; endDate: string | null; pax: number | null; sellCurrency: string | null; sellAmountCents: number | null; }[]; }; }; products: { total: number; countsByStatus: { status: string; count: number; }[]; active: number; publicActive: number; monthlyCreatedCounts: { yearMonth: string; count: number; }[]; }; suppliers: { total: number; countsByStatus: { status: string; count: number; }[]; countsByType: { type: string; count: number; }[]; active: number; }; finance: { total: number; countsByStatus: { status: string; count: number; }[]; counts: { invoices: { issued: number; paid: number; void: number; overdue: number; }; proformas: { issued: number; converted: number; void: number; }; paymentSessions: { pending: number; paid: number; failed: number; }; }; totals: { currency: string; invoiced: number; collected: number; outstanding: number; refunded: number; }[]; monthlyRevenue: { yearMonth: string; currency: string; totalCents: number; }[]; monthlyInvoiceCounts: { yearMonth: string; count: number; }[]; outstanding: { currency: string; balanceDueCents: number; count: number; }[]; overdue: { currency: string; balanceDueCents: number; count: number; }[]; outstandingTopN: { id: string; invoiceNumber: string | null; bookingId: string | null; status: string; currency: string; totalCents: number; balanceDueCents: number; issueDate: string | null; dueDate: string | null; }[]; }; availability: { total: number; countsByStatus: { status: "open" | "closed" | "sold_out" | "cancelled"; count: number; }[]; upcomingSlots: number; upcomingPax: number; monthlyDepartures: { yearMonth: string; count: number; }[]; }; }; }, import("./dashboard-tool.js").OperatorDashboardToolContext>]; /** * `date` is a hosted-consumer compatibility input. `dateLocal` is canonical. * Zoned bounds are normalized before reaching the service's UTC schema. */ export declare const departureListToolInputSchema: z.ZodObject<{ limit: z.ZodDefault>; offset: z.ZodDefault>; productId: z.ZodOptional; itineraryId: z.ZodOptional; optionId: z.ZodOptional; facilityId: z.ZodOptional; availabilityRuleId: z.ZodOptional; startTimeId: z.ZodOptional; dateLocal: z.ZodOptional; status: z.ZodOptional>; date: z.ZodOptional; startsAtFrom: z.ZodOptional; startsAtUntil: z.ZodOptional; }, z.core.$strip>; declare const availabilityRuleSchema: z.ZodObject<{ id: z.ZodString; productId: z.ZodString; optionId: z.ZodNullable; facilityId: z.ZodNullable; timezone: z.ZodString; recurrenceRule: z.ZodString; maxCapacity: z.ZodNumber; maxPickupCapacity: z.ZodNullable; minTotalPax: z.ZodNullable; cutoffMinutes: z.ZodNullable; earlyBookingLimitMinutes: z.ZodNullable; active: z.ZodBoolean; createdAt: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>; declare const availabilitySlotSchema: z.ZodObject<{ id: z.ZodString; productId: z.ZodString; itineraryId: z.ZodNullable; optionId: z.ZodNullable; facilityId: z.ZodNullable; availabilityRuleId: z.ZodNullable; startTimeId: z.ZodNullable; dateLocal: z.ZodString; startsAt: z.ZodString; endsAt: z.ZodNullable; timezone: z.ZodString; status: z.ZodEnum<{ open: "open"; closed: "closed"; sold_out: "sold_out"; cancelled: "cancelled"; }>; unlimited: z.ZodBoolean; initialPax: z.ZodNullable; remainingPax: z.ZodNullable; initialPickups: z.ZodNullable; remainingPickups: z.ZodNullable; remainingResources: z.ZodNullable; pastCutoff: z.ZodBoolean; tooEarly: z.ZodBoolean; nights: z.ZodNullable; days: z.ZodNullable; notes: z.ZodNullable; createdAt: z.ZodString; updatedAt: z.ZodString; endDateLocal: z.ZodNullable; }, z.core.$strip>; export declare const CREATE_DEPARTURE_HANDLER_POLICY: { readonly capabilityId: "@voyant-travel/operations#tool.create-departure"; readonly capabilityVersion: "v1"; readonly canonicalName: "create_departure"; readonly actionPolicy: { readonly id: "@voyant-travel/operations#action.create-departure"; readonly capabilityId: "@voyant-travel/operations#action.create-departure"; readonly version: "v1"; readonly kind: "execute"; readonly targetType: "departure"; readonly targetLifecycle: "created"; readonly createdTarget: { readonly commandTargetType: "departure-create-command"; readonly resultReferenceType: "departure"; readonly durability: "handler-command-claim-v1"; readonly parentAnchor: { readonly targetType: "product"; readonly targetIdField: "productId"; }; }; readonly risk: "medium"; readonly ledger: "required"; readonly approval: "never"; readonly reversible: false; readonly allowedActorTypes: readonly ["staff"]; }; }; export declare const createDepartureTool: import("@voyant-travel/tools").ToolDefinition<{ productId: string; dateLocal: string; startsAt: string; timezone: string; status: "open" | "closed" | "sold_out" | "cancelled"; unlimited: boolean; pastCutoff: boolean; tooEarly: boolean; itineraryId?: string | null | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; availabilityRuleId?: string | null | undefined; startTimeId?: string | null | undefined; endsAt?: string | null | undefined; initialPax?: number | null | undefined; remainingPax?: number | null | undefined; initialPickups?: number | null | undefined; remainingPickups?: number | null | undefined; remainingResources?: number | null | undefined; nights?: number | null | undefined; days?: number | null | undefined; notes?: string | null | undefined; idempotencyKey?: string | undefined; }, { departure: z.infer | null; replayed: boolean; }, OperationsToolContext>; export declare const updateDepartureTool: import("@voyant-travel/tools").ToolDefinition<{ id: string; productId?: string | undefined; itineraryId?: string | null | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; availabilityRuleId?: string | null | undefined; startTimeId?: string | null | undefined; dateLocal?: string | undefined; startsAt?: string | undefined; endsAt?: string | null | undefined; timezone?: string | undefined; status?: "open" | "closed" | "sold_out" | "cancelled" | undefined; unlimited?: boolean | undefined; initialPax?: number | null | undefined; remainingPax?: number | null | undefined; initialPickups?: number | null | undefined; remainingPickups?: number | null | undefined; remainingResources?: number | null | undefined; pastCutoff?: boolean | undefined; tooEarly?: boolean | undefined; nights?: number | null | undefined; days?: number | null | undefined; notes?: string | null | undefined; updatedAt?: string | undefined; }, { departure: z.infer | null; }, OperationsToolContext>; export declare const getAvailabilityOverviewTool: import("@voyant-travel/tools").ToolDefinition<{ attentionLimit: number; productId?: string | undefined; }, { openSlotsCount: number; constrainedSlotsCount: number; activeRulesCount: number; activePickupPointsCount: number; productsWithoutUpcomingDeparturesCount: number; productsWithoutUpcomingDepartures: { id: string; name: string; }[]; constrainedSlots: { id: string; productId: string; itineraryId: string | null; optionId: string | null; facilityId: string | null; availabilityRuleId: string | null; startTimeId: string | null; dateLocal: string; startsAt: string; endsAt: string | null; timezone: string; status: "open" | "closed" | "sold_out" | "cancelled"; unlimited: boolean; initialPax: number | null; remainingPax: number | null; initialPickups: number | null; remainingPickups: number | null; remainingResources: number | null; pastCutoff: boolean; tooEarly: boolean; nights: number | null; days: number | null; notes: string | null; createdAt: string; updatedAt: string; productName: string | null; }[]; }, OperationsToolContext>; export declare const getAvailabilityAggregatesTool: import("@voyant-travel/tools").ToolDefinition<{ from?: string | undefined; to?: string | undefined; }, { total: number; countsByStatus: { status: "open" | "closed" | "sold_out" | "cancelled"; count: number; }[]; upcomingSlots: number; upcomingPax: number; monthlyDepartures: { yearMonth: string; count: number; }[]; }, OperationsToolContext>; export declare const listAvailabilityRulesTool: import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; active?: boolean | undefined; }, { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; timezone: string; recurrenceRule: string; maxCapacity: number; maxPickupCapacity: number | null; minTotalPax: number | null; cutoffMinutes: number | null; earlyBookingLimitMinutes: number | null; active: boolean; createdAt: string; updatedAt: string; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>; export declare const getAvailabilityRuleTool: import("@voyant-travel/tools").ToolDefinition<{ id: string; }, { rule: z.infer | null; }, OperationsToolContext>; export declare const listAvailabilityStartTimesTool: import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; active?: boolean | undefined; }, { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; label: string | null; startTimeLocal: string; durationMinutes: number | null; sortOrder: number; active: boolean; createdAt: string; updatedAt: string; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>; export declare const listDeparturesTool: import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; itineraryId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; availabilityRuleId?: string | undefined; startTimeId?: string | undefined; dateLocal?: string | undefined; status?: "open" | "closed" | "sold_out" | "cancelled" | undefined; date?: string | undefined; startsAtFrom?: string | undefined; startsAtUntil?: string | undefined; }, { data: { id: string; productId: string; itineraryId: string | null; optionId: string | null; facilityId: string | null; availabilityRuleId: string | null; startTimeId: string | null; dateLocal: string; startsAt: string; endsAt: string | null; timezone: string; status: "open" | "closed" | "sold_out" | "cancelled"; unlimited: boolean; initialPax: number | null; remainingPax: number | null; initialPickups: number | null; remainingPickups: number | null; remainingResources: number | null; pastCutoff: boolean; tooEarly: boolean; nights: number | null; days: number | null; notes: string | null; createdAt: string; updatedAt: string; endDateLocal: string | null; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>; export declare const getDepartureTool: import("@voyant-travel/tools").ToolDefinition<{ id: string; }, { departure: z.infer | null; }, OperationsToolContext>; export declare const listAvailabilityCloseoutsTool: import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; slotId?: string | undefined; dateLocal?: string | undefined; }, { data: { id: string; productId: string; slotId: string | null; dateLocal: string; reason: string | null; createdBy: string | null; createdAt: string; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>; export declare const operationsWriteTools: readonly [import("@voyant-travel/tools").ToolDefinition<{ productId: string; dateLocal: string; startsAt: string; timezone: string; status: "open" | "closed" | "sold_out" | "cancelled"; unlimited: boolean; pastCutoff: boolean; tooEarly: boolean; itineraryId?: string | null | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; availabilityRuleId?: string | null | undefined; startTimeId?: string | null | undefined; endsAt?: string | null | undefined; initialPax?: number | null | undefined; remainingPax?: number | null | undefined; initialPickups?: number | null | undefined; remainingPickups?: number | null | undefined; remainingResources?: number | null | undefined; nights?: number | null | undefined; days?: number | null | undefined; notes?: string | null | undefined; idempotencyKey?: string | undefined; }, { departure: z.infer | null; replayed: boolean; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ id: string; productId?: string | undefined; itineraryId?: string | null | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; availabilityRuleId?: string | null | undefined; startTimeId?: string | null | undefined; dateLocal?: string | undefined; startsAt?: string | undefined; endsAt?: string | null | undefined; timezone?: string | undefined; status?: "open" | "closed" | "sold_out" | "cancelled" | undefined; unlimited?: boolean | undefined; initialPax?: number | null | undefined; remainingPax?: number | null | undefined; initialPickups?: number | null | undefined; remainingPickups?: number | null | undefined; remainingResources?: number | null | undefined; pastCutoff?: boolean | undefined; tooEarly?: boolean | undefined; nights?: number | null | undefined; days?: number | null | undefined; notes?: string | null | undefined; updatedAt?: string | undefined; }, { departure: z.infer | null; }, OperationsToolContext>]; export declare const operationsTools: readonly [import("@voyant-travel/tools").ToolDefinition<{ attentionLimit: number; productId?: string | undefined; }, { openSlotsCount: number; constrainedSlotsCount: number; activeRulesCount: number; activePickupPointsCount: number; productsWithoutUpcomingDeparturesCount: number; productsWithoutUpcomingDepartures: { id: string; name: string; }[]; constrainedSlots: { id: string; productId: string; itineraryId: string | null; optionId: string | null; facilityId: string | null; availabilityRuleId: string | null; startTimeId: string | null; dateLocal: string; startsAt: string; endsAt: string | null; timezone: string; status: "open" | "closed" | "sold_out" | "cancelled"; unlimited: boolean; initialPax: number | null; remainingPax: number | null; initialPickups: number | null; remainingPickups: number | null; remainingResources: number | null; pastCutoff: boolean; tooEarly: boolean; nights: number | null; days: number | null; notes: string | null; createdAt: string; updatedAt: string; productName: string | null; }[]; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ from?: string | undefined; to?: string | undefined; }, { total: number; countsByStatus: { status: "open" | "closed" | "sold_out" | "cancelled"; count: number; }[]; upcomingSlots: number; upcomingPax: number; monthlyDepartures: { yearMonth: string; count: number; }[]; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; active?: boolean | undefined; }, { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; timezone: string; recurrenceRule: string; maxCapacity: number; maxPickupCapacity: number | null; minTotalPax: number | null; cutoffMinutes: number | null; earlyBookingLimitMinutes: number | null; active: boolean; createdAt: string; updatedAt: string; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ id: string; }, { rule: z.infer | null; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; active?: boolean | undefined; }, { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; label: string | null; startTimeLocal: string; durationMinutes: number | null; sortOrder: number; active: boolean; createdAt: string; updatedAt: string; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; itineraryId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; availabilityRuleId?: string | undefined; startTimeId?: string | undefined; dateLocal?: string | undefined; status?: "open" | "closed" | "sold_out" | "cancelled" | undefined; date?: string | undefined; startsAtFrom?: string | undefined; startsAtUntil?: string | undefined; }, { data: { id: string; productId: string; itineraryId: string | null; optionId: string | null; facilityId: string | null; availabilityRuleId: string | null; startTimeId: string | null; dateLocal: string; startsAt: string; endsAt: string | null; timezone: string; status: "open" | "closed" | "sold_out" | "cancelled"; unlimited: boolean; initialPax: number | null; remainingPax: number | null; initialPickups: number | null; remainingPickups: number | null; remainingResources: number | null; pastCutoff: boolean; tooEarly: boolean; nights: number | null; days: number | null; notes: string | null; createdAt: string; updatedAt: string; endDateLocal: string | null; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ id: string; }, { departure: z.infer | null; }, OperationsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ limit: number; offset: number; productId?: string | undefined; slotId?: string | undefined; dateLocal?: string | undefined; }, { data: { id: string; productId: string; slotId: string | null; dateLocal: string; reason: string | null; createdBy: string | null; createdAt: string; }[]; total: number; limit: number; offset: number; }, OperationsToolContext>];