import { FC } from 'react'; /** * A help article/documentation item */ export interface HelpArticle { /** Unique identifier */ id: string; /** Article title */ title: string; /** Short description */ description?: string; /** Full content (markdown supported) */ content?: string; /** Category for grouping */ category: string; /** Tags for search */ tags: string[]; /** External URL if hosted elsewhere */ url?: string; /** Icon for display */ icon?: FC<{ className?: string; }>; /** Order within category */ order?: number; } /** * A step in a guided tour */ export interface TourStep { /** Unique step identifier */ id: string; /** Step title */ title: string; /** Step description/content */ content: string; /** CSS selector for the target element */ targetSelector?: string; /** Position of the popover */ position?: 'top' | 'bottom' | 'left' | 'right'; /** Action to perform when step is shown */ onShow?: () => void; /** Action to perform when moving to next step */ onNext?: () => void; } /** * A guided tour */ export interface HelpTour { /** Unique tour identifier */ id: string; /** Tour name */ name: string; /** Tour description */ description?: string; /** Steps in the tour */ steps: TourStep[]; /** Context where this tour is relevant (e.g., microfrontend name) */ context?: string; /** Whether tour auto-starts for new users */ autoStart?: boolean; } /** * Support ticket creation data */ export interface SupportTicket { /** Ticket subject */ subject: string; /** Ticket description */ description: string; /** Priority level */ priority: 'low' | 'medium' | 'high' | 'urgent'; /** Category */ category: string; /** Attachments (file URLs) */ attachments?: string[]; /** Current page URL */ pageUrl?: string; /** Browser info */ browserInfo?: string; } /** * Help content registration from microfrontends */ export interface HelpContent { /** Context identifier (usually microfrontend name) */ contextId: string; /** Articles specific to this context */ articles?: HelpArticle[]; /** Tours specific to this context */ tours?: HelpTour[]; /** Quick links */ quickLinks?: Array<{ label: string; url: string; icon?: FC<{ className?: string; }>; }>; } /** * Help panel tab types */ export type HelpTab = 'docs' | 'tours' | 'support'; /** * Help context state */ export interface HelpContextState { /** Whether help panel is open */ isOpen: boolean; /** Currently active tab */ activeTab: HelpTab; /** Current context (e.g., active microfrontend) */ currentContext?: string; /** Search query */ searchQuery: string; /** Registered help content from all microfrontends */ registeredContent: Map; /** Active tour (if any) */ activeTour?: HelpTour; /** Current step in active tour */ activeTourStep?: number; } /** * Help context actions */ export interface HelpContextActions { /** Open help panel */ openHelp: () => void; /** Close help panel */ closeHelp: () => void; /** Toggle help panel */ toggleHelp: () => void; /** Set active tab */ setActiveTab: (tab: HelpTab) => void; /** Set search query */ setSearchQuery: (query: string) => void; /** Set current context */ setCurrentContext: (context: string) => void; /** Register help content */ registerHelpContent: (content: HelpContent) => void; /** Unregister help content */ unregisterHelpContent: (contextId: string) => void; /** Start a tour */ startTour: (tourId: string) => void; /** End current tour */ endTour: () => void; /** Go to next tour step */ nextTourStep: () => void; /** Go to previous tour step */ prevTourStep: () => void; /** Submit support ticket */ submitTicket: (ticket: SupportTicket) => Promise; } /** * Complete help context */ export type HelpContext = HelpContextState & HelpContextActions; //# sourceMappingURL=types.d.ts.map