import type { TicketStatus, TicketPriority, SLAMetrics } from '../types'; /** * Join a base path with a sub-path, avoiding double slashes. * Used by Root components to construct navigation paths from basePath. */ export declare function joinPath(base: string, path: string): string; export declare function isAdminRole(role?: string | null): boolean; /** Humanise a ContactInquiry.category slug for display, e.g. "plugin-developer" → "Plugin developer". */ export declare function humanizeCategory(value?: string | null): string; /** * Format ticket status for display */ export declare function formatTicketStatus(status: TicketStatus): string; /** * Get color for ticket priority */ export declare function getPriorityColor(priority: TicketPriority): string; /** * Get icon for ticket priority */ export declare function getPriorityIcon(priority: import('../types').SupportTicketPriority | TicketPriority): string; /** * Format file size for display */ export declare function formatFileSize(bytes: number): string; /** * Format time ago (e.g., "2 hours ago") */ export declare function formatTimeAgo(date: string | Date): string; /** * Format duration in minutes to human-readable string */ export declare function formatDuration(minutes: number): string; /** * Calculate SLA breach percentage */ export declare function calculateSLAStatus(slaMetrics: SLAMetrics | undefined): { status: 'safe' | 'warning' | 'danger'; label: string; color: string; }; /** * Truncate text with ellipsis */ export declare function truncateText(text: string, maxLength: number): string; /** * Extract initials from name */ export declare function getInitials(name: string): string; /** * Validate email address */ export declare function isValidEmail(email: string): boolean; /** * Generate color from string (for avatars, categories, etc.) */ export declare function stringToColor(str: string): string;