/** * Presenter contract * * @deprecated Must use builders instead. * * Pure, deterministic transformation between presentation models. * * Based on PRESENTERS.md: * - Deterministic * - Side-effect free * - No HTTP/API calls * - Maps between Page DTO, ViewModel, and ViewData */ export interface Presenter { /** * Transform input to output * * @param input - The input presentation model (Page DTO, ViewModel, etc.) * @returns The output presentation model (ViewModel, ViewData, etc.) */ present(input: TInput): TOutput; }