interface Window {
  btoa (v: string): string;
  atob (v: string): string;
  pageXOffset: number;
  pageYOffset: number;
  scrollTo (x: number, y: number): void;
  location: {
    search: string;
  };
  open (id: string, windowName?: string, windowFeatures?: string): Window | null;
  closed: boolean;
  focus (): void;
  onfocus (this: GlobalEventHandlers, ev: FocusEvent): void;
  onblur (this: GlobalEventHandlers, ev: FocusEvent): void;
  onbeforeunload (this: WindowEventHandlers, ev: BeforeUnloadEventHandler): void;
}

// 패턴그룹
interface IPlatformPatternsGroup {
  OS: Object<IPlatformPatterns[]>;
  Browser: Object<IPlatformPatterns[]>;
  MobileApp: Object<IPlatformPatterns[]>;
}

// 패턴
interface IPlatformPatterns {
  [key: string]: RegExp[];
}
