import { Component, ComponentConstructor, Props } from "./component"; import { ComponentNode } from "./component_node"; import { handleError } from "./error_handling"; import { Fiber, RootFiber, MountOptions } from "./fibers"; import { Scheduler } from "./scheduler"; import { TemplateSet, TemplateSetConfig } from "./template_set"; import { validateTarget } from "./utils"; import { toRaw, reactive } from "./reactivity"; export interface Env { [key: string]: any; } export interface RootConfig { props?: P; env?: E; } export interface AppConfig extends TemplateSetConfig, RootConfig { name?: string; test?: boolean; warnIfNoStaticProps?: boolean; } declare global { interface Window { __OWL_DEVTOOLS__: { apps: Set; Fiber: typeof Fiber; RootFiber: typeof RootFiber; toRaw: typeof toRaw; reactive: typeof reactive; }; } } interface Root

{ node: ComponentNode; mount(target: HTMLElement | ShadowRoot, options?: MountOptions): Promise>; destroy(): void; } export declare class App any = any, P extends object = any, E = any> extends TemplateSet { static validateTarget: typeof validateTarget; static apps: Set>; static version: string; name: string; Root: ComponentConstructor; props: P; env: E; scheduler: Scheduler; subRoots: Set; root: ComponentNode | null; warnIfNoStaticProps: boolean; constructor(Root: ComponentConstructor, config?: AppConfig); mount(target: HTMLElement | ShadowRoot, options?: MountOptions): Promise & InstanceType>; createRoot(Root: ComponentConstructor, config?: RootConfig): Root; makeNode(Component: ComponentConstructor, props: any): ComponentNode; mountNode(node: ComponentNode, target: HTMLElement | ShadowRoot, options?: MountOptions): any; destroy(): void; createComponent

(name: string | null, isStatic: boolean, hasSlotsProp: boolean, hasDynamicPropList: boolean, propList: string[]): (props: P, key: string, ctx: ComponentNode, parent: any, C: any) => any; handleError(...args: Parameters): void; } export declare function mount any = any, P extends object = any, E = any>(C: T & ComponentConstructor, target: HTMLElement, config?: AppConfig & MountOptions): Promise & InstanceType>; export {};