/**
 * AWS Polly Configuration Constants
 * Centralized configuration for all AWS Polly-related defaults
 */

export const AWS_POLLY_DEFAULTS = {
  VOICE_ID: "Matthew" as const,
  ENGINE: "generative" as const,
  OUTPUT_FORMAT: "mp3" as const,
} as const;

export const KNOWN_WORKING_COMBINATIONS = [
  { voiceId: "Matthew", engine: "generative" as const }
] as const;

export const AWS_POLLY_CONFIG = {
  SUPPORTED_ENGINES: ["generative", "neural", "standard"] as const,
  SUPPORTED_FORMATS: ["mp3", "ogg_vorbis", "pcm"] as const,
  SUPPORTED_VOICES: {
    MALE: ["Matthew", "Justin", "Joey"] as const,
    FEMALE: ["Joanna", "Kendra", "Kimberly"] as const,
  },
} as const;

export type PollyEngine = typeof AWS_POLLY_CONFIG.SUPPORTED_ENGINES[number];
export type PollyFormat = typeof AWS_POLLY_CONFIG.SUPPORTED_FORMATS[number];
export type PollyVoice = typeof AWS_POLLY_CONFIG.SUPPORTED_VOICES.MALE[number] | typeof AWS_POLLY_CONFIG.SUPPORTED_VOICES.FEMALE[number];

export const DEFAULT_POLLY_REQUEST = {
  voiceId: AWS_POLLY_DEFAULTS.VOICE_ID,
  engine: AWS_POLLY_DEFAULTS.ENGINE,
  outputFormat: AWS_POLLY_DEFAULTS.OUTPUT_FORMAT,
} as const; 