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;
}
