/* eslint-disable  @typescript-eslint/no-explicit-any */
import { css } from 'styled-components/macro'

type ProcedureName = string
type RequestParameters = any
type StyledCss = ReturnType<typeof css>

export enum ClientIds {
  Facr = 'facr-ott-web',
  India = 'india-ott-web',
  Insports = 'insports-ott-web',
  Instat = 'ott-web',
  Lff = 'lff-ott-web',
  Tunisia = 'tunis-ott-web',
}

export enum ClientNames {
  Brasil = 'brasil',
  Facr = 'facr',
  India = 'india',
  Insports = 'insports',
  Instat = 'instat',
  Lff = 'lff',
  Tunisia = 'tunisia'
}

export type ClientConfig = {
  about_the_project?: string,
  auth: {
    clientId: ClientIds,
    metaDataUrlParams?: string,
  },
  defaultLanguage: string,
  description: string,
  disabledFilters?: boolean,
  disabledHighlights?: boolean,
  disabledPreferences?: boolean,
  name: ClientNames,
  privacyLink: string,
  requests?: Record<ProcedureName, RequestParameters>,
  showSearch?: boolean,
  showSmartBanner?: boolean,
  styles: {
    background?: string,
    homePageHeader?: StyledCss,
    logo: string,
    logoHeight?: number,
    logoLeft?: number,
    logoTop?: number,
    logoWidth?: number,
    matchLogoHeight?: number,
    matchLogoTopMargin?: number,
    matchLogoWidth?: number,
    matchPageMobileHeaderLogo?: StyledCss,
    mobileHeaderLogo?: StyledCss,
    userAccountLogo?: StyledCss,
  },
  termsLink: string,
  title: string,
  userAccountLinksDisabled?: boolean,
}
