import { OpenAPIHono } from "@hono/zod-openapi"; import { Hono } from "hono"; import type { Env } from "./routes-shared.js"; export declare const availabilityRoutes: Hono; export declare const availabilityAdminRoutes: OpenAPIHono & import("hono/types").MergeSchemaPath<{ "/location-pickup-times": { $get: { input: { query: { limit?: unknown; offset?: unknown; pickupLocationId?: string | undefined; slotId?: string | undefined; startTimeId?: string | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { data: { id: string; pickupLocationId: string; slotId: string | null; startTimeId: string | null; timingMode: "fixed_time" | "offset_from_start"; localTime: string | null; offsetMinutes: number | null; instructions: string | null; initialCapacity: number | null; remainingCapacity: number | null; active: boolean; createdAt: string; updatedAt: string; }[]; total: number; limit: number; offset: number; }; outputFormat: "json"; status: 200; }; }; } & { "/location-pickup-times": { $post: { input: { json: { pickupLocationId: string; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { pickupLocationId: string; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; output: { data: { id: string; pickupLocationId: string; slotId: string | null; startTimeId: string | null; timingMode: "fixed_time" | "offset_from_start"; localTime: string | null; offsetMinutes: number | null; instructions: string | null; initialCapacity: number | null; remainingCapacity: number | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; }; }; } & { "/location-pickup-times/batch-update": { $post: { input: { json: { ids: string[]; patch: { pickupLocationId?: string | undefined; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { pickupLocationId?: string | undefined; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; }; output: { data: { id: string; pickupLocationId: string; slotId: string | null; startTimeId: string | null; timingMode: "fixed_time" | "offset_from_start"; localTime: string | null; offsetMinutes: number | null; instructions: string | null; initialCapacity: number | null; remainingCapacity: number | null; active: boolean; createdAt: string; updatedAt: string; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/location-pickup-times/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/location-pickup-times/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { data: { id: string; pickupLocationId: string; slotId: string | null; startTimeId: string | null; timingMode: "fixed_time" | "offset_from_start"; localTime: string | null; offsetMinutes: number | null; instructions: string | null; initialCapacity: number | null; remainingCapacity: number | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/location-pickup-times/:id": { $patch: { input: { param: { id: string; }; } & { json: { pickupLocationId?: string | undefined; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { pickupLocationId?: string | undefined; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { pickupLocationId?: string | undefined; slotId?: string | null | undefined; startTimeId?: string | null | undefined; timingMode?: "fixed_time" | "offset_from_start" | undefined; localTime?: string | null | undefined; offsetMinutes?: number | null | undefined; instructions?: string | null | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; active?: boolean | undefined; }; }; output: { data: { id: string; pickupLocationId: string; slotId: string | null; startTimeId: string | null; timingMode: "fixed_time" | "offset_from_start"; localTime: string | null; offsetMinutes: number | null; instructions: string | null; initialCapacity: number | null; remainingCapacity: number | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/location-pickup-times/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/pickup-locations": { $get: { input: { query: { limit?: unknown; offset?: unknown; groupId?: string | undefined; facilityId?: string | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { data: { id: string; groupId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; leadTimeMinutes: number | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }[]; total: number; limit: number; offset: number; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-locations": { $post: { input: { json: { groupId: string; name: string; facilityId?: string | null | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { groupId: string; name: string; facilityId?: string | null | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { data: { id: string; groupId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; leadTimeMinutes: number | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; }; }; } & { "/pickup-locations/batch-update": { $post: { input: { json: { ids: string[]; patch: { groupId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { groupId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; }; output: { data: { id: string; groupId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; leadTimeMinutes: number | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-locations/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-locations/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { data: { id: string; groupId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; leadTimeMinutes: number | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-locations/:id": { $patch: { input: { param: { id: string; }; } & { json: { groupId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { groupId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { groupId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; leadTimeMinutes?: number | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { data: { id: string; groupId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; leadTimeMinutes: number | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-locations/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/pickup-groups": { $get: { input: { query: { limit?: unknown; offset?: unknown; meetingConfigId?: string | undefined; kind?: "pickup" | "dropoff" | "meeting" | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { data: { id: string; meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description: string | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }[]; total: number; limit: number; offset: number; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-groups": { $post: { input: { json: { meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { data: { id: string; meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description: string | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; }; }; } & { "/pickup-groups/batch-update": { $post: { input: { json: { ids: string[]; patch: { meetingConfigId?: string | undefined; kind?: "pickup" | "dropoff" | "meeting" | undefined; name?: string | undefined; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { meetingConfigId?: string | undefined; kind?: "pickup" | "dropoff" | "meeting" | undefined; name?: string | undefined; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; }; output: { data: { id: string; meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description: string | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-groups/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-groups/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { data: { id: string; meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description: string | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-groups/:id": { $patch: { input: { param: { id: string; }; } & { json: { meetingConfigId?: string | undefined; kind?: "pickup" | "dropoff" | "meeting" | undefined; name?: string | undefined; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { meetingConfigId?: string | undefined; kind?: "pickup" | "dropoff" | "meeting" | undefined; name?: string | undefined; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { meetingConfigId?: string | undefined; kind?: "pickup" | "dropoff" | "meeting" | undefined; name?: string | undefined; description?: string | null | undefined; active?: boolean | undefined; sortOrder?: number | undefined; }; }; output: { data: { id: string; meetingConfigId: string; kind: "pickup" | "dropoff" | "meeting"; name: string; description: string | null; active: boolean; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-groups/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/meeting-configs": { $get: { input: { query: { limit?: unknown; offset?: unknown; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; mode: "meeting_only" | "pickup_only" | "meet_or_pickup"; allowCustomPickup: boolean; allowCustomDropoff: boolean; requiresPickupSelection: boolean; requiresDropoffSelection: boolean; usePickupAllotment: boolean; meetingInstructions: string | null; pickupInstructions: string | null; dropoffInstructions: string | null; active: boolean; createdAt: string; updatedAt: string; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }; outputFormat: "json"; status: 200; }; }; } & { "/meeting-configs": { $post: { input: { json: { productId: string; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { productId: string; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; output: { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; mode: "meeting_only" | "pickup_only" | "meet_or_pickup"; allowCustomPickup: boolean; allowCustomDropoff: boolean; requiresPickupSelection: boolean; requiresDropoffSelection: boolean; usePickupAllotment: boolean; meetingInstructions: string | null; pickupInstructions: string | null; dropoffInstructions: string | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; }; }; } & { "/meeting-configs/batch-update": { $post: { input: { json: { ids: string[]; patch: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; }; output: { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; mode: "meeting_only" | "pickup_only" | "meet_or_pickup"; allowCustomPickup: boolean; allowCustomDropoff: boolean; requiresPickupSelection: boolean; requiresDropoffSelection: boolean; usePickupAllotment: boolean; meetingInstructions: string | null; pickupInstructions: string | null; dropoffInstructions: string | null; active: boolean; createdAt: string; updatedAt: string; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/meeting-configs/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/meeting-configs/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; mode: "meeting_only" | "pickup_only" | "meet_or_pickup"; allowCustomPickup: boolean; allowCustomDropoff: boolean; requiresPickupSelection: boolean; requiresDropoffSelection: boolean; usePickupAllotment: boolean; meetingInstructions: string | null; pickupInstructions: string | null; dropoffInstructions: string | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/meeting-configs/:id": { $patch: { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; mode?: "meeting_only" | "pickup_only" | "meet_or_pickup" | undefined; allowCustomPickup?: boolean | undefined; allowCustomDropoff?: boolean | undefined; requiresPickupSelection?: boolean | undefined; requiresDropoffSelection?: boolean | undefined; usePickupAllotment?: boolean | undefined; meetingInstructions?: string | null | undefined; pickupInstructions?: string | null | undefined; dropoffInstructions?: string | null | undefined; active?: boolean | undefined; }; }; output: { data: { id: string; productId: string; optionId: string | null; facilityId: string | null; mode: "meeting_only" | "pickup_only" | "meet_or_pickup"; allowCustomPickup: boolean; allowCustomDropoff: boolean; requiresPickupSelection: boolean; requiresDropoffSelection: boolean; usePickupAllotment: boolean; meetingInstructions: string | null; pickupInstructions: string | null; dropoffInstructions: string | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/meeting-configs/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/slot-pickups": { $get: { input: { query: { limit?: unknown; offset?: unknown; slotId?: string | undefined; pickupPointId?: string | undefined; }; }; output: { data: { id: string; slotId: string; pickupPointId: string; initialCapacity: number | null; remainingCapacity: number | null; createdAt: string; updatedAt: string; }[]; total: number; limit: number; offset: number; }; outputFormat: "json"; status: 200; }; }; } & { "/slot-pickups": { $post: { input: { json: { slotId: string; pickupPointId: string; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { slotId: string; pickupPointId: string; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; output: { data: { id: string; slotId: string; pickupPointId: string; initialCapacity: number | null; remainingCapacity: number | null; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; }; }; } & { "/slot-pickups/batch-update": { $post: { input: { json: { ids: string[]; patch: { slotId?: string | undefined; pickupPointId?: string | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { slotId?: string | undefined; pickupPointId?: string | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; }; output: { data: { id: string; slotId: string; pickupPointId: string; initialCapacity: number | null; remainingCapacity: number | null; createdAt: string; updatedAt: string; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/slot-pickups/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/slot-pickups/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { data: { id: string; slotId: string; pickupPointId: string; initialCapacity: number | null; remainingCapacity: number | null; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slot-pickups/:id": { $patch: { input: { param: { id: string; }; } & { json: { slotId?: string | undefined; pickupPointId?: string | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { slotId?: string | undefined; pickupPointId?: string | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { slotId?: string | undefined; pickupPointId?: string | undefined; initialCapacity?: number | null | undefined; remainingCapacity?: number | null | undefined; }; }; output: { data: { id: string; slotId: string; pickupPointId: string; initialCapacity: number | null; remainingCapacity: number | null; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slot-pickups/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/pickup-points": { $get: { input: { query: { limit?: unknown; offset?: unknown; productId?: string | undefined; facilityId?: string | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { data: { id: string; productId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; active: boolean; createdAt: string; updatedAt: string; productName?: string | null | undefined; }[]; total: number; limit: number; offset: number; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-points": { $post: { input: { json: { productId: string; name: string; facilityId?: string | null | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; output: { data: { id: string; productId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; } | { input: { json: { productId: string; name: string; facilityId?: string | null | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; }; }; } & { "/pickup-points/batch-update": { $post: { input: { json: { ids: string[]; patch: { productId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { productId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; }; output: { data: { id: string; productId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; active: boolean; createdAt: string; updatedAt: string; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-points/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-points/:id": { $get: { input: { param: { id: string; }; }; output: { data: { id: string; productId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; } | { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; }; }; } & { "/pickup-points/:id": { $patch: { input: { param: { id: string; }; } & { json: { productId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; facilityId?: string | null | undefined; name?: string | undefined; description?: string | null | undefined; locationText?: string | null | undefined; active?: boolean | undefined; }; }; output: { data: { id: string; productId: string; facilityId: string | null; name: string; description: string | null; locationText: string | null; active: boolean; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/pickup-points/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/">, "/"> & import("hono/types").MergeSchemaPath | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { json: { capacity: number; namePattern?: string | undefined; refType?: string | null | undefined; refId?: string | null | undefined; layout?: string | null | undefined; defaultCount?: number | null | undefined; flags?: Record | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { json: { capacity: number; namePattern?: string | undefined; refType?: string | null | undefined; refId?: string | null | undefined; layout?: string | null | undefined; defaultCount?: number | null | undefined; flags?: Record | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { json: { capacity: number; namePattern?: string | undefined; refType?: string | null | undefined; refId?: string | null | undefined; layout?: string | null | undefined; defaultCount?: number | null | undefined; flags?: Record | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { json: { capacity: number; namePattern?: string | undefined; refType?: string | null | undefined; refId?: string | null | undefined; layout?: string | null | undefined; defaultCount?: number | null | undefined; flags?: Record | undefined; }; }; output: { data: { id: string; productOptionId: string; kind: string; refType: string | null; refId: string | null; capacity: number; namePattern: string; layout: string | null; defaultCount: number | null; flags: { [x: string]: import("hono/utils/types").JSONValue; }; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/products/:productId/options/:optionId/allocation/resource-templates/:kind": { $delete: { input: { param: { productId: string; optionId: string; kind: string; }; } & { query: { refId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { query: { refId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { query: { refId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { query: { refId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { productId: string; optionId: string; kind: string; }; } & { query: { refId?: string | undefined; }; }; output: { data: { productOptionId: string; kind: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/products/:id/allocation/materialize-open-slots": { $post: { input: { param: { id: string; }; } & { json: { optionId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { optionId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { optionId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; }; } & { json: { optionId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; }; } & { json: { optionId?: string | undefined; }; }; output: { data: { slots: number; created: number; }; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/slots/:id/allocation/auto-materialize": { $post: { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { data: { kind: string; assigned?: number | undefined; skipped?: number | undefined; created?: number | undefined; resources?: { id: string; slotId: string; kind: string; refType: string | null; refId: string | null; label: string | null; capacity: number; flags: { [x: string]: import("hono/utils/types").JSONValue; }; parentId: string | null; sortOrder: number; createdAt: string; updatedAt: string; }[] | undefined; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/materialize-templates": { $post: { input: { param: { id: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; }; }; output: { data: { created: number; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/auto-allocate": { $post: { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; }; } & { json: { kind?: string | undefined; }; }; output: { data: { kind: string; assigned?: number | undefined; skipped?: number | undefined; created?: number | undefined; resources?: { id: string; slotId: string; kind: string; refType: string | null; refId: string | null; label: string | null; capacity: number; flags: { [x: string]: import("hono/utils/types").JSONValue; }; parentId: string | null; sortOrder: number; createdAt: string; updatedAt: string; }[] | undefined; }; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/slots/:id/allocation/audit-log": { $get: { input: { param: { id: string; }; } & { query: { limit?: unknown; }; }; output: { data: { id: string; slotId: string; action: string; actorId: string | null; travelerId: string | null; resourceId: string | null; before: { [x: string]: import("hono/utils/types").JSONValue; } | null; after: { [x: string]: import("hono/utils/types").JSONValue; } | null; createdAt: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/export-passengers": { $get: { input: { param: { id: string; }; }; output: Response; outputFormat: "json"; status: import("hono/utils/http-status").StatusCode; } | { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; }; }; } & { "/slots/:id/allocation/export-rooming-list": { $get: { input: { param: { id: string; }; }; output: Response; outputFormat: "json"; status: import("hono/utils/http-status").StatusCode; } | { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/slots/:id/allocation/travelers/:travelerId": { $patch: { input: { param: { id: string; travelerId: string; }; } & { json: { kind: string; resourceId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; travelerId: string; }; } & { json: { kind: string; resourceId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; travelerId: string; }; } & { json: { kind: string; resourceId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; travelerId: string; }; } & { json: { kind: string; resourceId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; travelerId: string; }; } & { json: { kind: string; resourceId: string | null; }; }; output: { data: { travelerId: string; kind: string; resourceId: string | null; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/travelers/:travelerId/sharing-group": { $patch: { input: { param: { id: string; travelerId: string; }; } & { json: { sharingGroupId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; travelerId: string; }; } & { json: { sharingGroupId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; travelerId: string; }; } & { json: { sharingGroupId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; travelerId: string; }; } & { json: { sharingGroupId: string | null; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; travelerId: string; }; } & { json: { sharingGroupId: string | null; }; }; output: { data: { travelerId: string; sharingGroupId: string | null; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/sharing-groups/pair": { $post: { input: { param: { id: string; }; } & { json: { travelerIds: string[]; sharingGroupId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { travelerIds: string[]; sharingGroupId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { travelerIds: string[]; sharingGroupId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; }; } & { json: { travelerIds: string[]; sharingGroupId?: string | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; }; } & { json: { travelerIds: string[]; sharingGroupId?: string | undefined; }; }; output: { data: { sharingGroupId: string; travelerIds: string[]; }; }; outputFormat: "json"; status: 201; }; }; } & { "/slots/:id/allocation/sharing-groups/:groupId/label": { $put: { input: { param: { id: string; groupId: string; }; } & { json: { label: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; groupId: string; }; } & { json: { label: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; groupId: string; }; } & { json: { label: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; groupId: string; }; } & { json: { label: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; groupId: string; }; } & { json: { label: string; }; }; output: { data: { groupId: string; label: string; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/sharing-groups/:groupId/label": { $delete: { input: { param: { id: string; groupId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; groupId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; groupId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; groupId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; groupId: string; }; }; output: { data: { groupId: string; label: string; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/slots/:id/allocation": { $get: { input: { param: { id: string; }; }; output: { data: { slot: { id: string; productId: string | null; startsAt: string | null; endsAt: string | null; }; bookings: { id: string; bookingNumber: string; status: string; bookingSequence: number; paymentStatus: string; contactFirstName: string | null; contactLastName: string | null; contactEmail: string | null; contactPhone: string | null; sellCurrency: string | null; pax: number | null; sellAmountCents: number | null; paidAmountCents: number | null; travelers: { id: string; bookingId: string; bookingNumber: string; bookingStatus: string; bookingSequence: number; paymentStatus: string; firstName: string; lastName: string; fullName: string; email: string | null; phone: string | null; isLeadTraveler: boolean; isPrimary: boolean; sharingGroupId: string | null; optionId: string | null; optionUnitId: string | null; optionUnitCode: string | null; roomTypeId: string | null; bedPreference: string | null; allocations: { [x: string]: string; }; travelerCategory: string | null; participantType: string; hasAccessibilityNeeds: boolean; hasDietaryRequirements: boolean; }[]; }[]; resources: { id: string; slotId: string; kind: string; refType: string | null; refId: string | null; label: string | null; capacity: number; flags: { [x: string]: import("hono/utils/types").JSONValue; }; parentId: string | null; sortOrder: number; createdAt: string; updatedAt: string; }[]; sharingGroupLabels: { [x: string]: string; }; summary: { bookingCount: number; travelerCount: number; leadTravelerCount: number; bookingsByStatus: { [x: string]: number; }; }; }; }; outputFormat: "json"; status: 200; } | { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; }; }; } & { "/slots/:id/allocation/resources": { $post: { input: { param: { id: string; }; } & { json: { kind: string; capacity: number; refType?: string | null | undefined; refId?: string | null | undefined; label?: string | null | undefined; flags?: Record | undefined; parentId?: string | null | undefined; sortOrder?: number | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { kind: string; capacity: number; refType?: string | null | undefined; refId?: string | null | undefined; label?: string | null | undefined; flags?: Record | undefined; parentId?: string | null | undefined; sortOrder?: number | undefined; }; }; output: { data: { id: string; slotId: string; kind: string; refType: string | null; refId: string | null; label: string | null; capacity: number; flags: { [x: string]: import("hono/utils/types").JSONValue; }; parentId: string | null; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 201; } | { input: { param: { id: string; }; } & { json: { kind: string; capacity: number; refType?: string | null | undefined; refId?: string | null | undefined; label?: string | null | undefined; flags?: Record | undefined; parentId?: string | null | undefined; sortOrder?: number | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { kind: string; capacity: number; refType?: string | null | undefined; refId?: string | null | undefined; label?: string | null | undefined; flags?: Record | undefined; parentId?: string | null | undefined; sortOrder?: number | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; }; } & { json: { kind: string; capacity: number; refType?: string | null | undefined; refId?: string | null | undefined; label?: string | null | undefined; flags?: Record | undefined; parentId?: string | null | undefined; sortOrder?: number | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; }; }; } & { "/slots/:id/allocation/resources/:resourceId": { $patch: { input: { param: { id: string; resourceId: string; }; } & { json: { label?: string | null | undefined; sortOrder?: number | undefined; refType?: string | null | undefined; refId?: string | null | undefined; capacity?: number | undefined; flags?: Record | undefined; parentId?: string | null | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; resourceId: string; }; } & { json: { label?: string | null | undefined; sortOrder?: number | undefined; refType?: string | null | undefined; refId?: string | null | undefined; capacity?: number | undefined; flags?: Record | undefined; parentId?: string | null | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; resourceId: string; }; } & { json: { label?: string | null | undefined; sortOrder?: number | undefined; refType?: string | null | undefined; refId?: string | null | undefined; capacity?: number | undefined; flags?: Record | undefined; parentId?: string | null | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; resourceId: string; }; } & { json: { label?: string | null | undefined; sortOrder?: number | undefined; refType?: string | null | undefined; refId?: string | null | undefined; capacity?: number | undefined; flags?: Record | undefined; parentId?: string | null | undefined; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; resourceId: string; }; } & { json: { label?: string | null | undefined; sortOrder?: number | undefined; refType?: string | null | undefined; refId?: string | null | undefined; capacity?: number | undefined; flags?: Record | undefined; parentId?: string | null | undefined; }; }; output: { data: { id: string; slotId: string; kind: string; refType: string | null; refId: string | null; label: string | null; capacity: number; flags: { [x: string]: import("hono/utils/types").JSONValue; }; parentId: string | null; sortOrder: number; createdAt: string; updatedAt: string; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/allocation/resources/:resourceId": { $delete: { input: { param: { id: string; resourceId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; resourceId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; resourceId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 409; } | { input: { param: { id: string; resourceId: string; }; }; output: { error: string; detail?: import("hono/utils/types").JSONValue | undefined; }; outputFormat: "json"; status: 500; } | { input: { param: { id: string; resourceId: string; }; }; output: { data: { id: string; kind: string; label: string | null; capacity: number; }; }; outputFormat: "json"; status: 200; }; }; }, "/">, "/"> & import("hono/types").MergeSchemaPath & import("hono/types").MergeSchemaPath<{ "/slots": { $get: { input: { query: { limit?: unknown; offset?: unknown; productId?: string | undefined; itineraryId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; availabilityRuleId?: string | undefined; startTimeId?: string | undefined; dateLocal?: string | undefined; startsAtFrom?: string | undefined; startsAtUntil?: string | undefined; status?: "open" | "closed" | "sold_out" | "cancelled" | undefined; }; }; output: { 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; }; outputFormat: "json"; status: 200; }; }; } & { "/slots": { $post: { input: { json: { productId: string; dateLocal: string; startsAt: string; timezone: string; itineraryId?: string | null | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; availabilityRuleId?: string | null | undefined; startTimeId?: string | null | undefined; endsAt?: string | null | 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; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { productId: string; dateLocal: string; startsAt: string; timezone: string; itineraryId?: string | null | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; availabilityRuleId?: string | null | undefined; startTimeId?: string | null | undefined; endsAt?: string | null | 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; }; }; output: { 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; }; }; outputFormat: "json"; status: 201; }; }; } & { "/slots/batch-update": { $post: { input: { json: { ids: string[]; patch: { 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; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { 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; }; }; }; output: { 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; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { 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; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id/unit-availability": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { data: { optionUnitId: string; unitName: string; occupancyMax: number | null; initial: number | null; reserved: number; remaining: number | null; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id": { $patch: { input: { param: { id: string; }; } & { json: { 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; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { 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; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { 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; }; }; output: { 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; }; }; outputFormat: "json"; status: 200; }; }; } & { "/slots/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/start-times": { $get: { input: { query: { limit?: unknown; offset?: unknown; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { 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; }; outputFormat: "json"; status: 200; }; }; } & { "/start-times": { $post: { input: { json: { productId: string; startTimeLocal: string; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { productId: string; startTimeLocal: string; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; output: { 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; }; }; outputFormat: "json"; status: 201; }; }; } & { "/start-times/batch-update": { $post: { input: { json: { ids: string[]; patch: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; startTimeLocal?: string | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; startTimeLocal?: string | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; }; output: { 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; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/start-times/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/start-times/:id": { $get: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { 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; }; }; outputFormat: "json"; status: 200; }; }; } & { "/start-times/:id": { $patch: { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; startTimeLocal?: string | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; startTimeLocal?: string | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; label?: string | null | undefined; startTimeLocal?: string | undefined; durationMinutes?: number | null | undefined; sortOrder?: number | undefined; active?: boolean | undefined; }; }; output: { 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; }; }; outputFormat: "json"; status: 200; }; }; } & { "/start-times/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/rules": { $get: { input: { query: { limit?: unknown; offset?: unknown; productId?: string | undefined; optionId?: string | undefined; facilityId?: string | undefined; active?: "0" | "1" | "true" | "false" | undefined; }; }; output: { 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; }; outputFormat: "json"; status: 200; }; }; } & { "/rules": { $post: { input: { json: { productId: string; timezone: string; recurrenceRule: string; maxCapacity: number; optionId?: string | null | undefined; facilityId?: string | null | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; output: { 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; }; }; outputFormat: "json"; status: 201; } | { input: { json: { productId: string; timezone: string; recurrenceRule: string; maxCapacity: number; optionId?: string | null | undefined; facilityId?: string | null | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; }; }; } & { "/rules/batch-update": { $post: { input: { json: { ids: string[]; patch: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; timezone?: string | undefined; recurrenceRule?: string | undefined; maxCapacity?: number | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; patch: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; timezone?: string | undefined; recurrenceRule?: string | undefined; maxCapacity?: number | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; }; output: { 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; }[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/rules/batch-delete": { $post: { input: { json: { ids: string[]; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { json: { ids: string[]; }; }; output: { deletedIds: string[]; total: number; succeeded: number; failed: { id: string; error: string; }[]; }; outputFormat: "json"; status: 200; }; }; } & { "/rules/:id": { $get: { input: { param: { id: string; }; }; output: { 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; }; }; outputFormat: "json"; status: 200; } | { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; }; }; } & { "/rules/:id": { $patch: { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; timezone?: string | undefined; recurrenceRule?: string | undefined; maxCapacity?: number | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 400; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; timezone?: string | undefined; recurrenceRule?: string | undefined; maxCapacity?: number | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; } & { json: { productId?: string | undefined; optionId?: string | null | undefined; facilityId?: string | null | undefined; timezone?: string | undefined; recurrenceRule?: string | undefined; maxCapacity?: number | undefined; maxPickupCapacity?: number | null | undefined; minTotalPax?: number | null | undefined; cutoffMinutes?: number | null | undefined; earlyBookingLimitMinutes?: number | null | undefined; active?: boolean | undefined; }; }; output: { 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; }; }; outputFormat: "json"; status: 200; }; }; } & { "/rules/:id": { $delete: { input: { param: { id: string; }; }; output: { error: string; }; outputFormat: "json"; status: 404; } | { input: { param: { id: string; }; }; output: { success: true; }; outputFormat: "json"; status: 200; }; }; }, "/"> & import("hono/types").MergeSchemaPath<{ "/aggregates": { $get: { input: { query: { from?: string | undefined; to?: string | undefined; }; }; output: { data: { total: number; countsByStatus: { status: "open" | "closed" | "sold_out" | "cancelled"; count: number; }[]; upcomingSlots: number; upcomingPax: number; monthlyDepartures: { yearMonth: string; count: number; }[]; }; }; outputFormat: "json"; status: 200; }; }; } & { "/overview": { $get: { input: { query: { productId?: string | undefined; attentionLimit?: unknown; }; }; output: { data: { 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; }[]; }; }; outputFormat: "json"; status: 200; }; }; }, "/">, "/">, "/">; export type AvailabilityRoutes = typeof availabilityRoutes; export type AvailabilityAdminRoutes = typeof availabilityAdminRoutes;