/** * Trips agent tools on the framework tool contract (`@voyant-travel/tools`). * * These replace the bespoke `mcp-*.ts` surface: each tool is a headless * `defineTool` returning **typed pure data** (no MCP envelopes). The trips * service is injected on the context by intersection (`TripsToolContext`), so * this module stays deployment-agnostic — the operator binds the services to its * request `db` and mounts the registry through `@voyant-travel/mcp`. */ import { type ToolContext, type ToolHandlerActionPolicyContext } from "@voyant-travel/tools"; import { z } from "zod"; import type { TripComponent } from "./schema.js"; import { reviseTripResultSchema, tripActionAcceptedResultSchema } from "./tool-output-schemas.js"; import { addRequirementSchema, type createTripComponentSchema, getRequirementSourcingOperationSchema, priceTripSchema, reserveTripSchema, selectCandidateSchema, sourceRequirementCandidatesSchema } from "./validation.js"; export declare const CREATE_TRIP_HANDLER_POLICY: { readonly capabilityId: "@voyant-travel/trips#tool.create-trip"; readonly capabilityVersion: "v1"; readonly canonicalName: "create_trip"; readonly actionPolicy: { readonly id: "@voyant-travel/trips#action.create-trip"; readonly capabilityId: "@voyant-travel/trips#action.create-trip"; readonly version: "v1"; readonly kind: "execute"; readonly targetType: "trip"; readonly targetLifecycle: "created"; readonly createdTarget: { readonly commandTargetType: "trip-create-command"; readonly resultReferenceType: "trip"; readonly durability: "handler-command-claim-v1"; }; readonly risk: "medium"; readonly ledger: "required"; readonly approval: "never"; readonly reversible: false; }; }; export declare const SOURCE_REQUIREMENT_CANDIDATES_HANDLER_POLICY: { readonly capabilityId: "@voyant-travel/trips#tool.source-requirement-candidates"; readonly capabilityVersion: "v2"; readonly canonicalName: "source_trip_requirement_candidates"; readonly actionPolicy: { readonly id: "@voyant-travel/trips#action.source-requirement-candidates"; readonly capabilityId: "@voyant-travel/trips#action.source-requirement-candidates"; readonly version: "v2"; readonly kind: "execute"; readonly targetType: "trip-requirement"; readonly commandTargetField: "requirementId"; readonly targetLifecycle: "existing"; readonly existingTarget: { readonly durability: "handler-command-result-v1"; }; readonly risk: "medium"; readonly ledger: "required"; readonly approval: "never"; readonly reversible: true; readonly allowedActorTypes: readonly ["staff"]; }; }; export declare const PRICE_TRIP_APPROVAL_POLICY = "trips.price-trip.v1"; export declare const RESERVE_TRIP_APPROVAL_POLICY = "trips.reserve-trip.v1"; export declare const PRICE_TRIP_HANDLER_POLICY: { readonly capabilityId: "@voyant-travel/trips#tool.price-trip"; readonly capabilityVersion: "v2"; readonly canonicalName: "price_trip"; readonly actionPolicy: { readonly id: "@voyant-travel/trips#action.price-trip"; readonly capabilityId: "@voyant-travel/trips#action.price-trip"; readonly version: "v2"; readonly kind: "execute"; readonly targetType: "trip"; readonly commandTargetField: "envelopeId"; readonly targetLifecycle: "existing"; readonly existingTarget: { readonly durability: "handler-command-result-v1"; }; readonly risk: "high"; readonly ledger: "required"; readonly approval: "required"; readonly policy: "trips.price-trip.v1"; readonly reversible: true; }; }; export declare const RESERVE_TRIP_HANDLER_POLICY: { readonly capabilityId: "@voyant-travel/trips#tool.reserve-trip"; readonly capabilityVersion: "v2"; readonly canonicalName: "reserve_trip"; readonly actionPolicy: { readonly id: "@voyant-travel/trips#action.reserve-trip"; readonly capabilityId: "@voyant-travel/trips#action.reserve-trip"; readonly version: "v2"; readonly kind: "execute"; readonly targetType: "trip"; readonly commandTargetField: "envelopeId"; readonly targetLifecycle: "existing"; readonly existingTarget: { readonly durability: "handler-command-result-v1"; }; readonly risk: "critical"; readonly ledger: "required"; readonly approval: "required"; readonly policy: "trips.reserve-trip.v1"; readonly reversible: false; }; }; /** The trips service surface a deployment binds into the tool context. */ export interface TripsToolServices { createTrip(input: CreateTripArgs, admitted: ToolHandlerActionPolicyContext): Promise<{ envelopeId: string; }>; addComponent(input: z.infer): Promise; removeComponent?(componentId: string): Promise; acceptPriceTrip(input: z.infer, admitted: ToolHandlerActionPolicyContext): Promise; acceptReserveTrip(input: Omit, "idempotencyKey">, admitted: ToolHandlerActionPolicyContext): Promise; getTripActionOperation(input: { operationId: string; envelopeId: string; }): Promise; addRequirement(input: z.infer): Promise; acceptRequirementCandidateSourcing(input: z.infer, admitted: ToolHandlerActionPolicyContext): Promise; getRequirementSourcingOperation(input: z.infer): Promise; selectCandidate(input: z.infer): Promise; listTrips(input: ListTripsArgs): Promise; getTrip(envelopeId: string): Promise; } /** Tool context with the trips service injected. */ export type TripsToolContext = ToolContext & { trips?: TripsToolServices; }; declare const createTripArgs: z.ZodObject<{ title: z.ZodOptional; description: z.ZodOptional; travelerParty: z.ZodDefault>; constraints: z.ZodDefault>; createdBy: z.ZodOptional; components: z.ZodDefault; sequence: z.ZodDefault; kind: z.ZodEnum<{ catalog_booking: "catalog_booking"; manual_placeholder: "manual_placeholder"; flight_placeholder: "flight_placeholder"; flight_order: "flight_order"; external_order: "external_order"; }>; metadata: z.ZodDefault>; catalogRef: z.ZodOptional; sourceRef: z.ZodOptional; }, z.core.$strip>>; estimatedPricing: z.ZodOptional; warnings: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strict>>>; }, z.core.$strip>; export type CreateTripArgs = z.infer; declare const createTripReferenceSchema: z.ZodObject<{ envelopeId: z.ZodString; }, z.core.$strip>; export type CreateTripResult = z.output; export declare const createTripTool: import("@voyant-travel/tools").ToolDefinition<{ travelerParty: Record; constraints: Record; components: { sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; metadata: Record; description?: string | undefined; catalogRef?: { entityModule: string; entityId: string; sourceKind: string; sourceConnectionId?: string | undefined; sourceRef?: string | undefined; } | undefined; estimatedPricing?: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | undefined; }[]; title?: string | undefined; description?: string | undefined; createdBy?: string | undefined; }, { envelopeId: string; }, TripsToolContext>; declare const reviseTripArgs: z.ZodObject<{ envelopeId: z.ZodString; addComponents: z.ZodDefault; sequence: z.ZodDefault; kind: z.ZodEnum<{ catalog_booking: "catalog_booking"; manual_placeholder: "manual_placeholder"; flight_placeholder: "flight_placeholder"; flight_order: "flight_order"; external_order: "external_order"; }>; metadata: z.ZodDefault>; catalogRef: z.ZodOptional; sourceRef: z.ZodOptional; }, z.core.$strip>>; estimatedPricing: z.ZodOptional; warnings: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strict>>>; removeComponentIds: z.ZodDefault>; }, z.core.$strip>; export type ReviseTripArgs = z.infer; export type ReviseTripResult = z.output; export declare const reviseTripTool: import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; addComponents: { sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; metadata: Record; description?: string | undefined; catalogRef?: { entityModule: string; entityId: string; sourceKind: string; sourceConnectionId?: string | undefined; sourceRef?: string | undefined; } | undefined; estimatedPricing?: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | undefined; }[]; removeComponentIds: string[]; }, { envelopeId: string; added: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; removed: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; }, TripsToolContext>; export type PriceTripArgs = z.infer; export type PriceTripResult = z.output; export declare const priceTripTool: import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; scope: { locale: string; audience: "staff" | "customer" | "partner" | "supplier"; market: string; currency?: string | undefined; }; ttlMs?: number | undefined; }, { status: "accepted"; operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; statusTool: "get_trip_action_operation"; }, TripsToolContext>; declare const reserveTripCommandSchema: z.ZodObject<{ envelopeId: z.ZodString; refreshScope: z.ZodOptional; market: z.ZodString; currency: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type ReserveTripArgs = z.infer; export type ReserveTripResult = z.output; export declare const reserveTripTool: import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; refreshScope?: { locale: string; audience: "staff" | "customer" | "partner" | "supplier"; market: string; currency?: string | undefined; } | undefined; }, { status: "accepted"; operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; statusTool: "get_trip_action_operation"; }, TripsToolContext>; export declare const getTripActionOperationTool: import("@voyant-travel/tools").ToolDefinition<{ operationId: string; envelopeId: string; }, { operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; status: "pending" | "processing" | "retry" | "completed" | "dead_letter"; result: { status: "accepted"; operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; statusTool: "get_trip_action_operation"; }; outcome: { status: "completed"; backendIdentity: string; providerOperationId: string; result: Record; } | { status: "dead_letter"; error: string; } | null; error: string | null; attempts: number; maxAttempts: number; nextAttemptAt: string; completedAt: string | null; createdAt: string; updatedAt: string; } | null, TripsToolContext>; export declare const addTripRequirementTool: import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; vertical: string; criteria: Record; criteriaVersion: string; sequence?: number | undefined; required?: boolean | undefined; title?: string | undefined; description?: string | undefined; metadata?: Record | undefined; }, { id: string; envelopeId: string; sequence: number; status: "cancelled" | "open" | "sourcing" | "candidates_ready" | "selected" | "no_availability"; title: string | null; description: string | null; vertical: string; criteria: Record; criteriaVersion: string; required: boolean; selectedCandidateId: string | null; resolvedComponentId: string | null; lastSourcedAt: string | null; metadata: Record; createdAt: string; updatedAt: string; }, TripsToolContext>; export declare const sourceTripRequirementCandidatesTool: import("@voyant-travel/tools").ToolDefinition<{ requirementId: string; scope: { locale: string; audience: "staff" | "customer" | "partner" | "supplier"; market: string; currency?: string | undefined; }; deadlineMs?: number | undefined; limit?: number | undefined; }, { status: "accepted"; operationId: string; requirementId: string; statusTool: "get_trip_requirement_sourcing_operation"; }, TripsToolContext>; export declare const getTripRequirementSourcingOperationTool: import("@voyant-travel/tools").ToolDefinition<{ operationId: string; requirementId: string; }, { operationId: string; requirementId: string; status: "pending" | "processing" | "retry" | "completed" | "dead_letter"; result: { status: "accepted"; operationId: string; requirementId: string; statusTool: "get_trip_requirement_sourcing_operation"; }; outcome: { status: "completed"; candidateCount: number; requirementStatus: "candidates_ready" | "no_availability"; } | { status: "dead_letter"; error: string; } | null; error: string | null; attempts: number; maxAttempts: number; nextAttemptAt: string; completedAt: string | null; createdAt: string; updatedAt: string; }, TripsToolContext>; export declare const selectTripCandidateTool: import("@voyant-travel/tools").ToolDefinition<{ requirementId: string; candidateId: string; }, { requirement: { id: string; envelopeId: string; sequence: number; status: "cancelled" | "open" | "sourcing" | "candidates_ready" | "selected" | "no_availability"; title: string | null; description: string | null; vertical: string; criteria: Record; criteriaVersion: string; required: boolean; selectedCandidateId: string | null; resolvedComponentId: string | null; lastSourcedAt: string | null; metadata: Record; createdAt: string; updatedAt: string; }; candidate: { id: string; requirementId: string; envelopeId: string; rank: number; status: "selected" | "ranked" | "expired" | "discarded"; candidateRef: string; entityModule: string; entityId: string; sourceKind: string; sourceConnectionId: string | null; sourceModule: string | null; selection: Record; priceCurrency: string; priceAmount: string; expiresAt: string | null; createdAt: string; updatedAt: string; }; component: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }; }, TripsToolContext>; declare const listTripsArgs: z.ZodObject<{ status: z.ZodOptional>; search: z.ZodOptional; productId: z.ZodOptional; accommodationId: z.ZodOptional; cruiseId: z.ZodOptional; hasFlight: z.ZodOptional>; totalMinCents: z.ZodOptional; totalMaxCents: z.ZodOptional; createdFrom: z.ZodOptional>; createdTo: z.ZodOptional>; sortBy: z.ZodDefault>; sortDir: z.ZodDefault>; limit: z.ZodDefault; offset: z.ZodDefault; }, z.core.$strip>; export type ListTripsArgs = z.infer; export declare const listTripsTool: import("@voyant-travel/tools").ToolDefinition<{ sortBy: "status" | "createdAt" | "updatedAt" | "total"; sortDir: "asc" | "desc"; limit: number; offset: number; status?: "draft" | "priced" | "reserve_in_progress" | "reserved" | "checkout_started" | "booked" | "failed" | "cancelled" | undefined; search?: string | undefined; productId?: string | undefined; accommodationId?: string | undefined; cruiseId?: string | undefined; hasFlight?: true | undefined; totalMinCents?: number | undefined; totalMaxCents?: number | undefined; createdFrom?: string | undefined; createdTo?: string | undefined; }, { data: { envelope: { id: string; status: "draft" | "priced" | "reserve_in_progress" | "reserved" | "checkout_started" | "booked" | "failed" | "cancelled"; title: string | null; description: string | null; travelerParty: Record; constraints: Record; aggregateCurrency: string | null; aggregateSubtotalAmountCents: number | null; aggregateTaxAmountCents: number | null; aggregateTotalAmountCents: number | null; aggregatePricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; componentCount: number; pricedComponentCount: number; warnings?: string[] | undefined; } | null; currentPriceExpiresAt: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; reserveIdempotencyKey: string | null; reserveStartedAt: string | null; reservedAt: string | null; checkoutIdempotencyKey: string | null; checkoutStartedAt: string | null; createdBy: string | null; updatedBy: string | null; createdAt: string; updatedAt: string; }; components: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; }[]; total: number; limit: number; offset: number; }, TripsToolContext>; export declare const getTripTool: import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; }, { envelope: { id: string; status: "draft" | "priced" | "reserve_in_progress" | "reserved" | "checkout_started" | "booked" | "failed" | "cancelled"; title: string | null; description: string | null; travelerParty: Record; constraints: Record; aggregateCurrency: string | null; aggregateSubtotalAmountCents: number | null; aggregateTaxAmountCents: number | null; aggregateTotalAmountCents: number | null; aggregatePricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; componentCount: number; pricedComponentCount: number; warnings?: string[] | undefined; } | null; currentPriceExpiresAt: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; reserveIdempotencyKey: string | null; reserveStartedAt: string | null; reservedAt: string | null; checkoutIdempotencyKey: string | null; checkoutStartedAt: string | null; createdBy: string | null; updatedBy: string | null; createdAt: string; updatedAt: string; }; components: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; } | null, TripsToolContext>; export declare const tripsTools: readonly [import("@voyant-travel/tools").ToolDefinition<{ sortBy: "status" | "createdAt" | "updatedAt" | "total"; sortDir: "asc" | "desc"; limit: number; offset: number; status?: "draft" | "priced" | "reserve_in_progress" | "reserved" | "checkout_started" | "booked" | "failed" | "cancelled" | undefined; search?: string | undefined; productId?: string | undefined; accommodationId?: string | undefined; cruiseId?: string | undefined; hasFlight?: true | undefined; totalMinCents?: number | undefined; totalMaxCents?: number | undefined; createdFrom?: string | undefined; createdTo?: string | undefined; }, { data: { envelope: { id: string; status: "draft" | "priced" | "reserve_in_progress" | "reserved" | "checkout_started" | "booked" | "failed" | "cancelled"; title: string | null; description: string | null; travelerParty: Record; constraints: Record; aggregateCurrency: string | null; aggregateSubtotalAmountCents: number | null; aggregateTaxAmountCents: number | null; aggregateTotalAmountCents: number | null; aggregatePricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; componentCount: number; pricedComponentCount: number; warnings?: string[] | undefined; } | null; currentPriceExpiresAt: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; reserveIdempotencyKey: string | null; reserveStartedAt: string | null; reservedAt: string | null; checkoutIdempotencyKey: string | null; checkoutStartedAt: string | null; createdBy: string | null; updatedBy: string | null; createdAt: string; updatedAt: string; }; components: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; }[]; total: number; limit: number; offset: number; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; }, { envelope: { id: string; status: "draft" | "priced" | "reserve_in_progress" | "reserved" | "checkout_started" | "booked" | "failed" | "cancelled"; title: string | null; description: string | null; travelerParty: Record; constraints: Record; aggregateCurrency: string | null; aggregateSubtotalAmountCents: number | null; aggregateTaxAmountCents: number | null; aggregateTotalAmountCents: number | null; aggregatePricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; componentCount: number; pricedComponentCount: number; warnings?: string[] | undefined; } | null; currentPriceExpiresAt: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; reserveIdempotencyKey: string | null; reserveStartedAt: string | null; reservedAt: string | null; checkoutIdempotencyKey: string | null; checkoutStartedAt: string | null; createdBy: string | null; updatedBy: string | null; createdAt: string; updatedAt: string; }; components: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; } | null, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ travelerParty: Record; constraints: Record; components: { sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; metadata: Record; description?: string | undefined; catalogRef?: { entityModule: string; entityId: string; sourceKind: string; sourceConnectionId?: string | undefined; sourceRef?: string | undefined; } | undefined; estimatedPricing?: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | undefined; }[]; title?: string | undefined; description?: string | undefined; createdBy?: string | undefined; }, { envelopeId: string; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; addComponents: { sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; metadata: Record; description?: string | undefined; catalogRef?: { entityModule: string; entityId: string; sourceKind: string; sourceConnectionId?: string | undefined; sourceRef?: string | undefined; } | undefined; estimatedPricing?: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | undefined; }[]; removeComponentIds: string[]; }, { envelopeId: string; added: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; removed: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }[]; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; scope: { locale: string; audience: "staff" | "customer" | "partner" | "supplier"; market: string; currency?: string | undefined; }; ttlMs?: number | undefined; }, { status: "accepted"; operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; statusTool: "get_trip_action_operation"; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; refreshScope?: { locale: string; audience: "staff" | "customer" | "partner" | "supplier"; market: string; currency?: string | undefined; } | undefined; }, { status: "accepted"; operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; statusTool: "get_trip_action_operation"; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ operationId: string; envelopeId: string; }, { operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; status: "pending" | "processing" | "retry" | "completed" | "dead_letter"; result: { status: "accepted"; operationId: string; action: "price-trip" | "reserve-trip"; envelopeId: string; statusTool: "get_trip_action_operation"; }; outcome: { status: "completed"; backendIdentity: string; providerOperationId: string; result: Record; } | { status: "dead_letter"; error: string; } | null; error: string | null; attempts: number; maxAttempts: number; nextAttemptAt: string; completedAt: string | null; createdAt: string; updatedAt: string; } | null, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ envelopeId: string; vertical: string; criteria: Record; criteriaVersion: string; sequence?: number | undefined; required?: boolean | undefined; title?: string | undefined; description?: string | undefined; metadata?: Record | undefined; }, { id: string; envelopeId: string; sequence: number; status: "cancelled" | "open" | "sourcing" | "candidates_ready" | "selected" | "no_availability"; title: string | null; description: string | null; vertical: string; criteria: Record; criteriaVersion: string; required: boolean; selectedCandidateId: string | null; resolvedComponentId: string | null; lastSourcedAt: string | null; metadata: Record; createdAt: string; updatedAt: string; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ requirementId: string; scope: { locale: string; audience: "staff" | "customer" | "partner" | "supplier"; market: string; currency?: string | undefined; }; deadlineMs?: number | undefined; limit?: number | undefined; }, { status: "accepted"; operationId: string; requirementId: string; statusTool: "get_trip_requirement_sourcing_operation"; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ operationId: string; requirementId: string; }, { operationId: string; requirementId: string; status: "pending" | "processing" | "retry" | "completed" | "dead_letter"; result: { status: "accepted"; operationId: string; requirementId: string; statusTool: "get_trip_requirement_sourcing_operation"; }; outcome: { status: "completed"; candidateCount: number; requirementStatus: "candidates_ready" | "no_availability"; } | { status: "dead_letter"; error: string; } | null; error: string | null; attempts: number; maxAttempts: number; nextAttemptAt: string; completedAt: string | null; createdAt: string; updatedAt: string; }, TripsToolContext>, import("@voyant-travel/tools").ToolDefinition<{ requirementId: string; candidateId: string; }, { requirement: { id: string; envelopeId: string; sequence: number; status: "cancelled" | "open" | "sourcing" | "candidates_ready" | "selected" | "no_availability"; title: string | null; description: string | null; vertical: string; criteria: Record; criteriaVersion: string; required: boolean; selectedCandidateId: string | null; resolvedComponentId: string | null; lastSourcedAt: string | null; metadata: Record; createdAt: string; updatedAt: string; }; candidate: { id: string; requirementId: string; envelopeId: string; rank: number; status: "selected" | "ranked" | "expired" | "discarded"; candidateRef: string; entityModule: string; entityId: string; sourceKind: string; sourceConnectionId: string | null; sourceModule: string | null; selection: Record; priceCurrency: string; priceAmount: string; expiresAt: string | null; createdAt: string; updatedAt: string; }; component: { id: string; envelopeId: string; sequence: number; kind: "catalog_booking" | "manual_placeholder" | "flight_placeholder" | "flight_order" | "external_order"; status: "draft" | "priced" | "checkout_started" | "booked" | "failed" | "cancelled" | "unavailable" | "held" | "removed"; title: string | null; description: string | null; entityModule: string | null; entityId: string | null; sourceKind: string | null; sourceConnectionId: string | null; sourceRef: string | null; bookingDraftId: string | null; catalogQuoteId: string | null; bookingId: string | null; bookingGroupId: string | null; orderId: string | null; paymentSessionId: string | null; providerRef: string | null; supplierRef: string | null; componentCurrency: string | null; componentSubtotalAmountCents: number | null; componentTaxAmountCents: number | null; componentTotalAmountCents: number | null; pricingSnapshot: { currency: string; subtotalAmountCents: number; taxAmountCents: number; totalAmountCents: number; priceExpiresAt?: string | undefined; warnings?: string[] | undefined; } | null; taxLines: { code: string; label: string; amountCents: number; baseAmountCents: number; rate?: number | undefined; jurisdiction?: string | undefined; includedInPrice?: boolean | undefined; source?: string | undefined; }[] | null; cancellationSnapshot: { action: string; refundAmountCents: number; refundCurrency: string | null; penaltyAmountCents: number; supplierCancellationDeadline: string | null; policySummary: string | null; snapshot: Record | null; } | null; holdToken: string | null; holdExpiresAt: string | null; priceExpiresAt: string | null; warningCodes: string[]; metadata: Record; createdAt: string; updatedAt: string; }; }, TripsToolContext>]; export {};