UNPKG

@duffel/components

Version:

Component library to build your travel product with Duffel.

78 lines (77 loc) 2.7 kB
/// <reference types="@duffel/api" /> import { Airline, Airport, CreateOrderPassenger, DuffelPassengerGender, DuffelPassengerTitle, Place } from "@duffel/api/types"; export interface TravelDetails<T extends "order" | "offer" | "diff"> { originDestination: string; departingAt: string; origin: T extends "diff" ? string : Airport | Place; arrivingAt: string; destination: T extends "diff" ? string : Airport | Place; aircraft: string | null; cabinClass: string; fareBrandName?: T extends "offer" ? string : never; flightDuration: string | null; flight: string; airline: T extends "diff" ? null : Airline; operatedBy?: string; baggagesIncluded?: { carryOn?: number; checked?: number; }; originTerminal?: string | null; destinationTerminal?: string | null; } export interface LayoverDetails { airport: Airport | Place; duration: string; originDestinationKey?: string; } export interface SliceTravelItem { type: "travel"; travelDetails: TravelDetails<"order" | "offer">; layoverDetails?: never; id: string; } export interface SliceLayoverItem { type: "layover"; travelDetails?: never; layoverDetails: LayoverDetails; } export type SliceItem = SliceTravelItem | SliceLayoverItem; export type SliceDetails = SliceItem[]; export type FilterItems = Record<string, string>; export type SliceDetailItemChangeStatus = "no_change" | "added" | "removed" | "changed"; export type ProcessedRequestError = { errorTitle?: string; errorMessage: string; requestId?: string; }; export type PropsOrError<T> = Readonly<({ error: true; } & ProcessedRequestError) | { error: false; props: T; } | { redirect: string; }>; export type RandomlyGeneratedPassenger = Omit<CreateOrderPassenger, "email" | "identityDocuments" | "infantPassengerId" | "phoneNumber">; export type ValueOf<T> = Required<T>[keyof T]; export declare const WebhookEventTypes: readonly ["order.created", "order.airline_initiated_change_detected"]; export type WebhookEventType = (typeof WebhookEventTypes)[number]; export declare const FilterableWebhookEventTypes: readonly ["order.created", "order.airline_initiated_change_detected", "ping.triggered"]; export type FilterableWebhookEventType = (typeof FilterableWebhookEventTypes)[number]; export type UnleashContext = { appName: string; environment?: string; userId?: string; sessionId?: string; remoteAddress?: string; properties?: { [key: string]: string; }; }; export type RandomlyGeneratedPeople = { title: DuffelPassengerTitle; familyName: string; givenName: string; gender: DuffelPassengerGender; };