//#region src/pathao/types.d.ts /** * Pathao address taxonomy — flat shapes that mirror what the * merchant.pathao.com /api/v1/area-search endpoint emits. * * These are NOT a unified cross-provider model — they're Pathao-native. * RedX has its own subpath, Steadfast its own. See `src/index.ts` for * the legacy unified shape (RedX-only IDs today). */ interface PathaoCity { /** Pathao's numeric city id — used in `recipient_city` on POST /orders. */ cityId: number; /** Display name as Pathao shows it. May contain trailing whitespace * in upstream data; the snapshot script trims. */ cityName: string; } interface PathaoZone { /** Pathao's numeric zone id — used in `recipient_zone` on POST /orders. */ zoneId: number; zoneName: string; } interface PathaoArea { /** Pathao's numeric area id — used in `recipient_area` on POST /orders. */ areaId: number; areaName: string; /** True if Pathao supports home delivery to this area. */ homeDelivery: boolean; /** True if Pathao supports pickup from this area. */ pickupAvailable: boolean; } //#endregion //#region src/pathao/cities.d.ts declare const PATHAO_CITIES: readonly PathaoCity[]; //#endregion //#region src/pathao/zones.d.ts declare const PATHAO_ZONES_BY_CITY: Readonly>; //#endregion //#region src/pathao/index.d.ts /** All Pathao cities, alphabetically sorted (snapshot order). */ declare function listCities(): readonly PathaoCity[]; /** Find a city by Pathao city id. Returns undefined if unknown. */ declare function findCity(cityId: number): PathaoCity | undefined; /** * Case-insensitive city lookup by name. Useful when the source data * is text (e.g. user-typed address from a free-form form). */ declare function findCityByName(name: string): PathaoCity | undefined; /** All zones for a given city. Empty array if the city has no zones (or unknown). */ declare function getZonesByCity(cityId: number): readonly PathaoZone[]; /** Find a specific zone within a city. */ declare function findZone(cityId: number, zoneId: number): PathaoZone | undefined; /** Case-insensitive zone lookup by name within a city. */ declare function findZoneByName(cityId: number, name: string): PathaoZone | undefined; /** * Search zones across ALL cities by name. Returns up to `limit` * matches, each with the parent city attached. */ declare function searchZones(query: string, limit?: number): Array; interface PathaoStats { cities: number; zones: number; zonesByCity: Array<{ city: string; cityId: number; zones: number; }>; } declare function getPathaoStats(): PathaoStats; //#endregion export { PATHAO_CITIES, PATHAO_ZONES_BY_CITY, type PathaoArea, type PathaoCity, PathaoStats, type PathaoZone, findCity, findCityByName, findZone, findZoneByName, getPathaoStats, getZonesByCity, listCities, searchZones }; //# sourceMappingURL=index.d.mts.map