import Cache from './cache'; export interface Options { pid: string; bid?: string; url?: string; random?: number; limit?: number; disabled?: boolean; version?: string; } export interface Event { type: string; name: string; value: string; } export interface UserInfo { uid: string; [index: string]: string; } export default class Snaker { pid: string; bid?: string; url: string; user?: UserInfo; random: number; limit: number; uuid: string; prefix: string; cache: Cache; disabled?: boolean; version?: string; constructor(options: Options); setUser(user: string | UserInfo): void; serialize(data: Event, extra: object): string; sendRequest(server: string, data: string): void; report(type: string, name: string, value: string, offline?: boolean, extra?: object): void; track(type: string, name: string, value: string, extra?: object): void; trackAsync(type: string, name: string, value: string, extra?: object): void; flush(): void; }