export type PptSlideTransition = 'crossfade' | 'fade' | 'push'
export type PptRevealTransition = 'fadeUp' | 'fade'

export interface PptTemplateColors {
  bg: string
  text: string
  muted: string
  accent: string
  codeBg: string
  codeText: string
  border: string
}

export interface PptTemplateAnimation {
  revealDuration: string
  revealLeaveDuration: string
  slideDuration: string
  layoutDuration: string
  revealOffset: string
  easing: string
}

export interface PptTemplateTransitions {
  slide: PptSlideTransition
  reveal: PptRevealTransition
}

export interface PptTemplateUi {
  showThumbnailsDefault: boolean
  canvasBorderRadius: string
}

export interface PptTemplateConfig {
  colors: PptTemplateColors
  animation: PptTemplateAnimation
  transitions: PptTemplateTransitions
  ui: PptTemplateUi
}

export interface PptTemplate {
  id: number
  name: string
  slug: string
  description: string
  config: PptTemplateConfig
  isSystem: boolean
  isDefault: boolean
  sortOrder: number
  isActive: boolean
  createdAt?: string
  updatedAt?: string
}

export interface PptTemplateFormData {
  name: string
  slug: string
  description: string
  config: PptTemplateConfig
  isDefault: boolean
  sortOrder: number
  isActive: boolean
}

export interface PptTemplateApplied {
  templateVars: Record<string, string>
  slideTransitionForward: string
  slideTransitionBackward: string
  revealTransition: string
}
