import { StoreNode } from "./store"; export interface ViewModel { /** Précise l'état de la synchronisation entre le model et le viewModel. */ isSubscribed: boolean; /** Réinitialise le viewModel à partir du model. */ reset(): void; /** Active la synchronisation model -> viewModel. La fonction est appelée à la création. */ subscribe(): void; /** Désactive la synchronisation model -> viewModel. */ unsubscribe(): void; } /** * Construit un ViewModel à partir d'une entrée d'entityStore. * Le ViewModel est un clone d'un model qui peut être librement modifié sans l'impacter, et propose des méthodes pour se synchroniser. * Toute mise à jour du model réinitialise le viewModel. */ export declare function createViewModel>(model: T): T & ViewModel;