import { FrontendConfigOverrides, VariantInfo } from 'src/application/models';
import type { HardcopyResponse } from 'src/contexts/hardcopyContext/hardcopyContext';
import type { WidgetTypeV3 } from 'src/contexts/typesV3';

export interface EnviveConfig {
  publicKey?: string;
  userID?: string;
  env?: 'prod' | 'dev';
  clientID?: string;
  show?: boolean;
  featureOverrides?: Record<string, boolean>;
  variantInfoOverride?: VariantInfo;
  variantUrlOverride?: string;
  pageVariantIdOverride?: string;
  selectedCustomizeOption?: string;
  reducedMotionOverride?: boolean;
  initialOpenSearchOverlay?: boolean;
  WidgetMountingOverride?: Record<string, any>[];
  configChanges?: FrontendConfigOverrides[];
  hardcopyOverride?: Partial<Record<WidgetTypeV3, HardcopyResponse>>;
}

declare global {
  interface Window {
    _spiffy?: EnviveConfig;
    _envive?: EnviveConfig;
  }
}

export {};
