/** * Response Parser * * Parses AI classification responses from JSON into typed objects. */ /** * Image hints for the banner image pipeline. * Non-location image hints only (locations are top-level). */ export interface ParsedImageHints { /** Stock photo query string - ALWAYS required (e.g., "hot air balloon cappadocia sunrise") */ stock: string; /** Media library key (e.g., "hot air balloon", "restaurant", "concert") */ mediaKey: string | null; /** When true: prefer stock photo, use mediaKey as fallback. When false: try mediaKey first. */ preferStock: boolean; } /** * Link hints for resolving media entities to canonical URLs. */ export interface ParsedLinkHints { /** Link type: movie, book, board_game, place, event, other */ type: string | null; /** Canonical title/name to search for (e.g., "The Matrix", "Blood on the Clocktower") */ query: string | null; } export interface ParsedClassification { msg: number; /** Message offset - 0 for suggestions, negative for agreements pointing to earlier messages */ off: number; title: string | null; /** How fun/enjoyable is this activity? 0.0-5.0 scale */ fun: number; /** How interesting/unique is this activity? 0.0-5.0 scale */ int: number; cat: string; /** Wikipedia topic name for "things" (bands, board games, concepts) */ wikiName: string | null; /** Canonical named place (valid Wikipedia title, e.g., "Waiheke Island", "Mount Fuji") */ placeName: string | null; /** Business/POI disambiguation string (Google Places only, e.g., "Dice Goblin Auckland") */ placeQuery: string | null; /** City name */ city: string | null; /** Region name (state, province) */ region: string | null; /** Country name */ country: string | null; image: ParsedImageHints; link: ParsedLinkHints | null; } /** * Parse the classification response from the AI. * @param response Raw AI response text * @param expectedIds Optional array of message IDs - at least one must match */ export declare function parseClassificationResponse(response: string, expectedIds?: readonly number[]): ParsedClassification[]; //# sourceMappingURL=response-parser.d.ts.map