import { BasePreset, ProcessedEntity } from '../../middleware/services/flat-formatter'; /** * Product entity - Example demonstrating COMPLEX FlatFormatter capabilities * * This example shows: * - **Nested objects** (pricing, metadata) * - **Arrays** (features, tags, reviews) * - **Optional fields** with fallbacks * - **Complex transformations** (joining, aggregating, calculating) * - **String composition** (combining multiple fields) * * Use this as a template for entities with complex structures. */ export interface Product { id?: string; name: string; description: string; category: string; pricing: { basePrice: number; currency: string; discountPercent?: number; taxRate?: number; }; features?: string[]; tags?: string[]; metadata?: { manufacturer: string; origin: string; certifications?: string[]; }; reviews?: Array<{ rating: number; comment: string; author?: string; }>; inStock?: boolean; quantity?: number; } /** * ProcessedProduct - Normalized, LLM-ready structure * * Shows how preprocessing transforms complex data: * - Arrays joined to strings * - Nested objects flattened * - Calculated fields added * - Everything normalized to strings */ export interface ProcessedProduct extends ProcessedEntity { [key: string]: string | number | boolean; Name: string; Description: string; Category: string; 'Price': string; 'Discount': string; 'Final Price': string; 'Features': string; 'Tags': string; 'Manufacturer': string; 'Origin': string; 'Certifications': string; 'Average Rating': string; 'Review Count': string; 'Sample Reviews': string; 'Availability': string; } /** * ProductPreset - Demonstrates advanced preprocessing * * Key techniques: * 1. Array handling (join, map, filter) * 2. Nested object access with optional chaining * 3. Calculations (discounts, averages) * 4. String composition * 5. Fallback values */ export declare class ProductPreset extends BasePreset { constructor(); protected preprocessEntity(product: Product): ProcessedProduct; } /** * Singleton instance for global use * * Usage: * ```typescript * import { productPreset } from 'ollama-middleware'; * * const product = { * name: 'Wireless Mouse', * pricing: { basePrice: 29.99, currency: 'USD', discountPercent: 15 }, * features: ['Bluetooth', 'Ergonomic', '3-year warranty'], * // ... more fields * }; * * const formatted = productPreset.formatForLLM(product, "## PRODUCT:"); * ``` */ export declare const productPreset: ProductPreset; //# sourceMappingURL=product-preset.example.d.ts.map