import { Obj } from '@mathigon/core'; declare global { interface Window { BoostBrowser?: BrowserInstance; Touch: unknown; chrome: unknown; } } export type ResizeEvent = { width: number; height: number; }; type ResizeCallback = (e: ResizeEvent) => void; type Theme = { name: 'dark' | 'light' | 'auto'; isDark: boolean; }; declare class BrowserInstance { readonly isMobile: boolean; readonly isRetina: boolean; readonly isTouch = true; readonly isChrome: boolean; readonly isFirefox: boolean; readonly isAndroid: boolean; readonly isIOS: boolean; readonly isSafari: boolean; constructor(); private readonly loadQueue; private loaded; private afterLoad; /** Binds an event listener that is triggered when the page is loaded. */ ready(fn: () => void): void; /** Forces a re-paint. This is useful when updating transition properties. */ redraw(): void; width: number; height: number; private readonly resizeCallbacks; private applyResize; onResize(fn: ResizeCallback): void; offResize(fn: ResizeCallback): void; resize(): void; readonly theme: Theme; private readonly themeChangedCallbacks; private themeOverride; private darkQuery; private applyThemeChange; setTheme(name: 'dark' | 'light' | 'auto'): void; onThemeChange(fn: (theme: Theme) => void): void; /** Returns the hash string of the current window. */ getHash(): string; /** Set the hash string of the current window. */ setHash(h: string): void; /** Set the URL of the current window. */ setURL(url: string, title?: string): void; /** Returns a JSON object of all cookies. */ getCookies(): Obj; getCookie(name: string): string | undefined; setCookie(name: string, value: unknown, maxAge?: number): void; deleteCookie(name: string): void; private localStorage?; setStorage(key: string, value: unknown): void; getStorage(key: string): any; deleteStorage(key: string): void; /** The current active element on the page (e.g. and ``). */ getActiveInput(): import("./elements").HTMLView | undefined; get formIsActive(): boolean; } export declare const Browser: BrowserInstance; /** Replaces SVG `` imports that are not supported by older browsers. */ export declare function replaceSvgImports(): void; export declare function keyCode(e: KeyboardEvent): string; export declare function bindAccessibilityEvents(parent?: HTMLElement): void; export {};