export interface ConfigMeta { [key: string]: any; } export interface ParamsMeta { [key: string]: any; } export interface PageMeta { title?: string; query?: { [key: string]: string | undefined; }; path?: string; href?: string; referrer?: string; } export interface UserMeta { id: string | null; name?: string; [key: string]: any; } export interface ScreenMeta { name: string; app?: string; } export interface EventMeta { action: string; category?: string; page?: string; label?: string; [key: string]: any; } export interface BaseGather { setUser?(userMeta: UserMeta): void; } export declare abstract class BaseGather { protected tagCalled: boolean; abstract init(): Promise; isInited(): boolean; $vendor: any; abstract config(configMeta: ConfigMeta): void; abstract page(pageMeta: PageMeta): void; abstract event(eventMeta: EventMeta): void; abstract screen(screenMeta: ScreenMeta): void; protected createScript(src: string, id: string): HTMLScriptElement; protected loadScript(script: HTMLScriptElement, key: string, removeAfterLoad: boolean | undefined, onLoad: () => void): void; }