import type { ToolContext, ToolHandlerActionPolicyContext } from "@voyant-travel/tools"; import type { z } from "zod"; import type { availabilityAggregatesQuerySchema, availabilityCloseoutListQuerySchema, availabilityOverviewQuerySchema, availabilityRuleListQuerySchema, availabilitySlotCoreSchema, availabilitySlotListQuerySchema, availabilityStartTimeListQuerySchema } from "./availability/validation.js"; /** Availability services contributed by an Operations runtime. */ export interface OperationsToolServices { createDeparture(input: z.infer & { idempotencyKey?: string; }, admitted: ToolHandlerActionPolicyContext): Promise; updateDeparture(id: string, patch: Partial> & { updatedAt?: string; }): Promise; getAvailabilityOverview(query: z.infer): Promise; getAvailabilityAggregates(query: z.infer): Promise; listAvailabilityRules(query: z.infer): Promise; getAvailabilityRule(id: string): Promise; listAvailabilityStartTimes(query: z.infer): Promise; listDepartures(query: z.infer): Promise; getDeparture(id: string): Promise; listAvailabilityCloseouts(query: z.infer): Promise; } export type OperationsToolContext = ToolContext & { operations?: OperationsToolServices; };