interface HTMLElement {
  webkitRequestFullScreen(options?: FullscreenOptions): Promise<void>
  mozRequestFullScreen(options?: FullscreenOptions): Promise<void>
  msRequestFullscreen(options?: FullscreenOptions): Promise<void>
}

interface Document {
  webkitFullscreenElement: Element | null
  mozFullScreenElement: Element | null
  msFullscreenElement: Element | null
  webkitCurrentFullScreenElement: Element | null

  mozCancelFullScreen(): Promise<void>
  webkitExitFullscreen(): Promise<void>
  msExitFullscreen(): Promise<void>
}

// AWS SDK 类型声明
interface Window {
  AWS: {
    config: {
      update: (credentials: { accessKeyId: string; secretAccessKey: string }) => void
      region: string
    }
    S3: new (config: { params: { Bucket: string } }) => {
      getObject: (params: { Bucket: string; Key: string }, callback: (err: any, data: any) => void) => void
    }
  }
}