import type { ReactNode } from 'react';

export type PreviewerType = 'text' | 'json' | 'code' | 'image' | 'markdown' | 'empty';
export type PreviewerFormat = 'auto' | 'plain' | 'terminal' | 'paths';

export type PreviewerLanguageOption = {
  label: string;
  value: string;
};

export type PreviewerUIProps = {
  type: PreviewerType;
  title?: ReactNode;
  description?: ReactNode;
  showHeader?: boolean;
  value?: unknown;
  copyValue?: string;
  copyable?: boolean;
  downloadable?: boolean;
  downloadValue?: string;
  downloadUrl?: string;
  downloadFileName?: string;
  maximizable?: boolean;
  language?: string;
  format?: PreviewerFormat;
  languageOptions?: PreviewerLanguageOption[];
  onLanguageChange?: (language: string) => void;
  imageAlt?: string;
  height?: number | string;
  toolbar?: ReactNode;
  className?: string;
};
