declare namespace JSX { export type IntrinsicElements = { [index: string]: any }; } declare function h( type: string, props?: { [index: string]: any } | null, ...children: (HTMLElement | string)[] ): Node; type AliceJSReferenceSink = { readonly __symbol: unique symbol, readonly __signature: T }; declare function use(sink: T | any, mapping?: (...args: any[]) => any): AliceJSReferenceSink; declare function useValue(sink: AliceJSReferenceSink): T; type Stateful = T & { readonly symbol: unique symbol }; declare function stateful(target: T): Stateful; declare function handle(references: AliceJSReferenceSink, callback: (value: T) => void): void; declare function css(strings: TemplateStringsArray, ...values: any): string; declare function rule(strings: TemplateStringsArray, ...values: any): string; declare var styled: { new: typeof css, rule: typeof rule }; type DLCSS = string; interface Element { $: DLComponent } type DLComponent = { css: DLCSS, root: Element, } & T;