import { SeededRandom } from '../utils/random'; export interface Fragment { text: string; type: 'opening' | 'middle' | 'closing' | 'standalone'; requiresSubject?: boolean; requiresObject?: boolean; eventTypes?: string[]; } export interface FragmentLibrary { [eventType: string]: { openings: Fragment[]; middles: Fragment[]; closings: Fragment[]; standalones: Fragment[]; }; } export declare class DescriptionFragmentLibrary { private library; private rng; constructor(rng?: SeededRandom); /** * Initialize the fragment library with pre-written fragments */ private initializeLibrary; /** * Get a random fragment of a specific type for an event type */ getFragment(eventType: string, fragmentType: 'opening' | 'middle' | 'closing' | 'standalone'): Fragment | null; /** * Combine fragments into a complete description */ combineFragments(subject: string, adjective: string, eventType: string, options?: { useOpening?: boolean; useMiddle?: boolean; useClosing?: boolean; }): string; /** * Get article for a word */ private getArticle; /** * Add custom fragments */ addFragments(eventType: string, fragments: { openings?: Fragment[]; middles?: Fragment[]; closings?: Fragment[]; standalones?: Fragment[]; }): void; } //# sourceMappingURL=DescriptionFragmentLibrary.d.ts.map