import { Group } from "../ui/view"; import { Panel } from "../ui/panel"; export declare abstract class ViewHolder { abstract build(root: Group): void; } export declare type Setter = (state: M) => void; export declare abstract class ViewModel { private state; private viewHolder; constructor(obj: M, v: V); getState(): M; getViewHolder(): V; updateState(setter: Setter): void; attach(view: Group): void; abstract onAttached(state: M, vh: V): void; abstract onBind(state: M, vh: V): void; } export declare type ClassType = new (...args: any) => T; export declare abstract class VMPanel extends Panel { private vm?; private vh?; abstract getViewModelClass(): ClassType>; abstract getState(): M; abstract getViewHolderClass(): ClassType; getViewModel(): ViewModel | undefined; build(root: Group): void; }