import type { ComponentNode } from "./component_node"; // ----------------------------------------------------------------------------- // Component Class // ----------------------------------------------------------------------------- type Props = { [key: string]: any }; interface StaticComponentProperties { template: string; defaultProps?: any; props?: any; } export type ComponentConstructor

= (new ( props: P, env: E, node: ComponentNode ) => Component) & StaticComponentProperties; export class Component { static template: string = ""; static props?: any; static defaultProps?: any; props: Props; env: Env; __owl__: ComponentNode; constructor(props: Props, env: Env, node: ComponentNode) { this.props = props; this.env = env; this.__owl__ = node; } setup() {} render() { this.__owl__.render(); } }