type CookieMap = { _ga?: string _ga_?: any } type DecoratorsData = { query: { [key: string]: any }, fragment: { [key: string]: any } } type DecoratorsType = { decorators: any[] data?: DecoratorsData } type GoogleTagDataType = { gl?: DecoratorsType; [key: string]: any } interface GoogleTagData { gl?: { decorators?: any[] data?: { query?: Record fragment?: Record } } } interface Window { ShadowRoot: typeof ShadowRoot, dataLayer: any[] google_tag_data?: GoogleTagDataType google_tag_manager: any } interface document { adoptedStyleSheets: CSSStyleSheet[] } // Augment existing types with styling API interface ShadowRoot { adoptedStyleSheets: CSSStyleSheet[] } declare var ShadowRoot: { prototype: ShadowRoot; new(): ShadowRoot } interface CSSStyleSheet extends StyleSheet { replaceSync(cssText: string): void replace(cssText: string): Promise } declare var CSSStyleSheet: { prototype: CSSStyleSheet new(options?: CSSStyleSheetInit): CSSStyleSheet }