import type React from "react"; export interface ResourceModalAttachment { name: string; url: string; type?: string; } export interface ResourceModalProps { open: boolean; onClose: () => void; title: string; videoUrl?: string; tags?: string[]; attachments?: ResourceModalAttachment[]; } export interface ResourceVideoItem { id: string; title: string; thumbnailUrl?: string; videoUrl?: string; duration?: string; tags?: string[]; attachments?: ResourceModalAttachment[]; } export interface ResourceVideoCardProps { video: ResourceVideoItem; } export interface ResourceEmailTemplateItem { id: string; title: string; htmlContent?: string; type?: "system" | "company"; isAddTemplate?: boolean; } export interface ResourceEmailTemplateCardProps { template: ResourceEmailTemplateItem; onClick?: () => void; } export interface ResourceEmailEditorDialogProps { open: boolean; onClose: () => void; onSave: (templateName: string) => void; /** Inject the real email editor (e.g. Unlayer) from the consuming app. */ editorSlot?: React.ReactNode; } export interface ResourceDocumentItem { id: string; title: string; thumbnailUrl?: string; tags?: string[]; downloadUrl?: string; pdfUrl?: string; } export interface ResourceDocumentCardProps { document: ResourceDocumentItem; onClick?: () => void; } export interface ResourceCarouselProps { title?: React.ReactNode; items: React.ReactNode[]; headerAction?: React.ReactNode; onViewModeChange?: (mode: "compact" | "grid") => void; className?: string; } export interface ResourceCenterHeaderProps { title: string; description: string; backgroundImageUrl?: string; backgroundVideoUrl?: string; watchVideoUrl?: string; }