export type ViewportOptions = {
  viewportWidth: number;
  viewportHeight: number;
  visibleWidth: number;
  visibleHeight: number;
  center: {
    x: number;
    y: number;
  };
  left: number;
  right: number;
  cropWidthRatio: number;
  heightRatio: number;
};

declare global {
  const __OPTIONS__: {
    server_id: string;
    freespinsType: 'transactional' | 'cumulative';
    env: string;
    csrfTokenHeaderName: string;
    csrfTokenHeaderValue: string;
    play_token: string;
    game: string;
    identifier: string;
    title: string;
    currency: string;
    cache_id: string;
    cache_player_id: string;
    replay_player_id: string;
    locale: string;
    default_locale: string;
    api: string;
    rules_url: string;
    translations_url: string;
    deposit_url: string | null;
    games_page_url: string;
    history_url: string | null;
    ui: {
      home_button: boolean;
      full_screen_prompt: boolean;
      logo: string;
      skin: string;
      skins: string[];
      brand_logo: string | null;
      isAutospinAvailable: boolean;
      brand: {
        name: string;
        logo: string | null;
        logo_in_game: string | null;
      };
      autospins_dialog: string;
      max_autospin_value: number;
      max_game_duration: number;
      show_rtp_in_rules: boolean;
    };
    resources_path: string;
    license_rules: Record<string, unknown>;
    custom: Record<string, unknown>;
    actions: Record<string, unknown>;
    actual_currency_rate: number;
    games_loader_source: string;
    game_bundle_source: string;
    math: Record<string, unknown>;
  };
  const __SENTRY_DSN: string | undefined;
  const __SENTRY_RELEASE: string | undefined;
  const __STORAGE_ID: string;
}

declare global {
  interface Window {
    user_id?: string;
    __OPTIONS__?: typeof __OPTIONS__ & { environment?: string };
    ARunner?: import('../activities/ActivityRunner').default;
    enableDebugEvents?: () => void;
    disableDebugEvents?: () => void;
    locales?: unknown;
  }
}
