interface OdooModuleErrors { cycle?: string | null; failed?: Set; missing?: Set; unloaded?: Set; } interface OdooModuleFactory { deps: string[]; fn: OdooModuleFactoryFn; ignoreMissingDeps: boolean; } class OdooModuleLoader { bus: EventTarget; checkErrorProm: Promise | null; debug: boolean; /** * Mapping [name => factory] */ factories: Map; /** * Names of failed modules */ failed: Set; /** * Names of modules waiting to be started */ jobs: Set; /** * Mapping [name => module] */ modules: Map; constructor(root?: HTMLElement); addJob: (name: string) => void; define: ( name: string, deps: string[], factory: OdooModuleFactoryFn, lazy?: boolean ) => OdooModule; findErrors: (jobs?: Iterable) => OdooModuleErrors; findJob: () => string | null; reportErrors: (errors: OdooModuleErrors) => Promise; require: (dependency: string) => OdooModule; sortFactories: () => void; startModule: (name: string) => OdooModule; startModules: () => void; } type OdooModule = Record; type OdooModuleFactoryFn = (require: (dependency: string) => OdooModule) => OdooModule; declare const odoo: { csrf_token: string; debug: string; define: OdooModuleLoader["define"]; loader: OdooModuleLoader; translationContext?: string; };