export interface WidgetConstructor { new (attributes?: T, children?: Widget[]): Widget; } /** * Widgets are the building blocks of [[Controller]]s. They represent a visual component on the client side; their usage is determined solely by the client. */ export interface Widget { /**Metadata holding the class name of the Widget, so it can be mapped back to the class from a JSON */ __variant__: string; } export declare class Widget { /** * Maps a JSON object to an instance of its class */ static fromJSON(json: any): Widget; } /** * A function to create an instance of a [[Widget]], intended to be used for JSX */ export declare const createWidget: >(widget: T, attributes?: object, ...children: Widget[]) => Widget;