declare global { interface Window { __loadedScriptsInternal?: CachedScripts; __loadedScriptsUpdatersInternal?: CachedScriptsUpdaters; __loadedScripts: CachedScripts; __loadedScriptsUpdaters: CachedScriptsUpdaters; } } export interface CachedScript { url: string; loading: boolean; failed: boolean; scriptCreated: boolean; failureEvent?: ErrorEvent; } type CachedScriptUpdater = { (script: CachedScript): void; }; interface CachedScriptsUpdaters { [key: string]: CachedScriptUpdater[]; } interface CachedScripts { [key: string]: CachedScript; } export declare function getFromWindowCache(url: string): CachedScript; export declare function updateCachedScript(url: string, updatedScript: Partial): CachedScript; export declare function addScriptUpdater(url: string, updater: CachedScriptUpdater): void; export declare function removeScriptUpdater(url: string, updater: CachedScriptUpdater): void; export declare function retrieveCachedScript(source: string, scriptAttributes?: Record): CachedScript; export {};