export type Listener = () => void | Promise; declare global { var jopiHotReload: HotReloadType; } export interface HotReloadType { onHotReload: Listener[]; memory: { [key: string]: any; }; } export declare function onServerSideReady(listener: Listener): void; export declare function waitServerSideReady(): Promise; export declare function declareServerSideReady(): Promise; export declare function onAppStart(listener: Listener): void; export declare function onAppExiting(listener: Listener): void; export declare function onAppExited(listener: Listener): void; export declare function declareAppStarted(): Promise; export declare function declareAppExiting(): Promise; export declare function executeApp(app: Listener): Promise; export declare function onHotReload(listener: Listener): void; export declare function keepOnHotReload(key: string, provider: () => T): T; export declare function clearHotReloadKey(key: string): void; export declare function getTempDir(): string; export declare function setTempDir(dir: string): void; export declare function findNodePackageDir(packageName: string, searchFromDir?: string): Promise; export declare function requireNodePackageDir(packageName: string, searchFromDir?: string): Promise; export declare function findRequiredPackageJsonDir(searchFromDir?: string): string; export declare function findPackageJsonDir(searchFromDir?: string): string | undefined; export declare function findRequiredPackageJson(searchFromDir?: string): string; export declare function findPackageJson(searchFromDir?: string): string | undefined; export declare function setApplicationMainFile(applicationMainFile: string): void; export declare function getApplicationMainFile(): string | undefined; export declare function getCodeSourceDirHint(): string; export declare function getSourceCodeDir(): string; export declare function getCompiledCodeDir(): string; export declare function toSourceCodeDir(itemPath: string): string; export declare function getCompiledFilePathFor(sourceFilePath: string, replaceExtension?: boolean): string; export declare function getSourcesCodePathFor(compiledFilePath: string): string; export declare function requireSourceOf(scriptPath: string): string; /** * Search the source of the component if it's a JavaScript and not a TypeScript. * Why? Because EsBuild doesn't work well on already transpiled code. */ export declare function searchSourceOf(scriptPath: string): string | undefined;