import { FeedbackType, ContentRef, CreateFeedbackResponse, FeedbackTypeOption } from '../../../services/feedback/types'; /** * Metadata para el componente FeedbackForm. */ export interface FeedbackFormMetadata { /** Tipo de feedback preseleccionado */ defaultType?: FeedbackType; /** Referencia a contenido (si aplica) */ contentRef?: ContentRef; /** Mostrar selector de tipo (default: true) */ showTypeSelector?: boolean; /** Tipos de feedback habilitados (por defecto todos) */ enabledTypes?: FeedbackType[]; /** Opciones personalizadas para tipos de feedback */ typeOptions?: FeedbackTypeOption[]; /** Placeholder para título */ titlePlaceholder?: string; /** Placeholder para descripción */ descriptionPlaceholder?: string; /** Label para campo de título */ titleLabel?: string; /** Label para campo de descripción */ descriptionLabel?: string; /** Texto del botón de envío */ submitButtonText?: string; /** Texto del botón cancelar (si no se proporciona, no se muestra) */ cancelButtonText?: string; /** Mostrar campo de adjuntos (default: true) */ showAttachments?: boolean; /** Label para campo de adjuntos */ attachmentsLabel?: string; /** Mensaje de éxito personalizado */ successMessage?: string; /** CSS class adicional para el contenedor */ cssClass?: string; /** Modo compacto (menos espaciado) */ compact?: boolean; } /** * Evento emitido cuando el feedback se envía exitosamente. */ export interface FeedbackSubmitEvent { response: CreateFeedbackResponse; type: FeedbackType; title: string; attachmentUrls?: string[]; } /** * Estado del formulario. */ export interface FeedbackFormState { isSubmitting: boolean; isSuccess: boolean; error: string | null; }