
const deviceList_dropdownItems=[
    {
    label: 'Firestick',
    icon: 'simple-icons:amazon',
    to:'/tools/screencaps/firetv/device/home',
    value:'firetv'
  },
  {
    label: 'Tivo 4k or Google/Android TV',
    icon: 'simple-icons:android',
    to:'/tools/screencaps/tivo4k/device/home',
    value:'tivo4k'
  },
  {
    label: 'Apple TV',
    icon: 'simple-icons:appletv',
    to:'/tools/screencaps/appletv/device/home',
    value:'appletv'
  },
  {
    label: 'Force 1',
    icon: 'simple-icons:android',
    to:'/tools/screencaps/force1/device/home',
    value:'force1'
  },
  {
    label: 'Evo Pro',
    icon: 'simple-icons:android',
    to:'/tools/screencaps/evopro/device/home',
    value:'evopro'
  },
  {
    label: 'Roku',
    icon: 'simple-icons:roku',
    to:'/tools/screencaps/roku/device/home',
    value:'roku'
  }
]
const deviceList_strArray=["firetv","tivo4k","appletv","force1","evopro","roku"];

interface ScreencapDevice {
    id: string,
    label: string,
    startScreen: string,
    categories: ScreencapCategory[],
    remotes: ScreencapRemote[]
}
interface ScreencapCategory {
    id: string,
    label: string,
    screens: ScreencapScreen[]
}
interface ScreencapScreen {
    id: string,
    label: string,
    category: string,
    path: string,
    imageSrc: string,
    buttons:{
        remote: ScreencapScreenRemoteMap[],
        screen: ScreencapScreenButton[]
    },
    notes?: {
        deviceVariant:string[]
        note: string,
        actions: object[]
    }
}
interface ScreencapRemote {
    id: number,
    label: string,
    default?: boolean,
    buttons:ScreencapScreenButton[],
    imageSrc: string,
    notes?: {
        deviceVariants:string[]
        note: string,
        actions: object[]
    }
}
interface ScreencapAction {
    id: number,
    label: string,
    device: string,
    target: 'remote' | 'screen',
    active: boolean,
    method: 'click' | 'dblclick' | 'hold',
    onClick?(): any,
    onDblClick?(): any,
    onHold?(): any
}
interface ScreencapScreenButton {
    id: number,
    label: string,
    position:{  x:number,y:number   },
    dimension?:{    w?:number,h?:number,r?:number   },
    shape:'cir' | 'rect' | 'arrow',
    arrow?:{
        direction:'up' | 'down' | 'left' | 'right',
        offset: number
    },
    actions: ScreencapAction[],
    popupDescription?: string
}
interface ScreencapRemoteButton {
    id: number,
    label: string,
    position:{  x:number,y:number   },
    dimension?:{    w?:number,h?:number,r?:number   },
    shape:'cir' | 'rect'
    mandatoryActions: ScreencapAction[],
    popupDescription?: string
}
interface ScreencapScreenRemoteMap {
    id: number,
    remoteButtonRef: string,
    actions: ScreencapAction[],
}
export type { ScreencapDevice, ScreencapRemote, ScreencapAction, ScreencapCategory, ScreencapScreenButton, ScreencapRemoteButton, ScreencapScreen, ScreencapScreenRemoteMap }
export { deviceList_dropdownItems, deviceList_strArray}