/**
 * Copyright 2024 Phenix Real Time Solutions, Inc. Confidential and Proprietary. All Rights Reserved.
 */
import Channel from '@phenixrts/sdk/types/sdk/channels/Channel';
import Channels from '@phenixrts/sdk/types/sdk/channels/Channels';
import ChannelState from '@phenixrts/sdk/types/sdk/channels/ChannelState';
import SDK from '@phenixrts/sdk/types/sdk/SDK';
import {PermalinkType} from 'interfaces';

declare global {
  interface Document {
    documentMode?: number;
  }
  interface Window {
    phenix?: {
      Channel?: typeof Channel;
      Channels?: typeof Channels;
      ChannelState: typeof ChannelState;
      SDK?: typeof SDK;
    };
  }
}

export interface ISelectItem {
  label: string;
  value: string | PermalinkType;
}

interface ISelectItemWithClass<V> {
  label: string;
  value: V;
  className?: string;
}

export interface ISelectItemWithClassOptions<V> {
  [key: string]: ISelectItemWithClass<V>;
}
