/// // MUI Icons Material module declaration // The package exports individual icon components but lacks a proper barrel index.d.ts declare module '@mui/icons-material' { import type { SvgIconComponent } from '@mui/icons-material/esm'; export const ExpandMore: SvgIconComponent; export const CheckCircle: SvgIconComponent; export const RadioButtonUnchecked: SvgIconComponent; export const Schedule: SvgIconComponent; export const Assignment: SvgIconComponent; export const AccountTree: SvgIconComponent; export const Timeline: SvgIconComponent; export const Block: SvgIconComponent; export const Link: SvgIconComponent; } // For default icon component type declare module '@mui/icons-material/esm' { import type { SvgIconProps } from '@mui/material/SvgIcon'; import type React from 'react'; export type SvgIconComponent = React.FC; } // Module declarations for packages without type definitions declare module 'lucide-react' { import type { FC, SVGAttributes } from 'react'; interface LucideIconProps extends SVGAttributes { size?: number | string; color?: string; strokeWidth?: number | string; absoluteStrokeWidth?: boolean; } type LucideIcon = FC; export const ChevronUp: LucideIcon; export const ChevronDown: LucideIcon; export const ChevronRight: LucideIcon; export const ChevronLeft: LucideIcon; export const X: LucideIcon; export const Search: LucideIcon; export const Filter: LucideIcon; export const RefreshCw: LucideIcon; export const Download: LucideIcon; export const Upload: LucideIcon; export const Settings: LucideIcon; export const Info: LucideIcon; export const AlertTriangle: LucideIcon; export const AlertCircle: LucideIcon; export const CheckCircle: LucideIcon; export const XCircle: LucideIcon; export const HelpCircle: LucideIcon; export const Loader2: LucideIcon; export const Send: LucideIcon; export const MessageSquare: LucideIcon; export const Bot: LucideIcon; export const User: LucideIcon; export const Copy: LucideIcon; export const Check: LucideIcon; export const Play: LucideIcon; export const Pause: LucideIcon; export const RotateCcw: LucideIcon; export const ExternalLink: LucideIcon; export const Sparkles: LucideIcon; export const MapPin: LucideIcon; export const Map: LucideIcon; export const Layers: LucideIcon; export const Globe: LucideIcon; export const Building: LucideIcon; export const Building2: LucideIcon; export const Library: LucideIcon; export const Archive: LucideIcon; export const Landmark: LucideIcon; export const Database: LucideIcon; export const Network: LucideIcon; export const Share2: LucideIcon; export const ZoomIn: LucideIcon; export const ZoomOut: LucideIcon; export const Maximize: LucideIcon; export const Maximize2: LucideIcon; export const Minimize: LucideIcon; export const Minimize2: LucideIcon; export const Palette: LucideIcon; export const Image: LucideIcon; export const ImageIcon: LucideIcon; export const FileText: LucideIcon; export const Eye: LucideIcon; export const EyeOff: LucideIcon; export const Sun: LucideIcon; export const Moon: LucideIcon; export const Menu: LucideIcon; export const ArrowRight: LucideIcon; export const ArrowLeft: LucideIcon; export const ArrowUp: LucideIcon; export const ArrowDown: LucideIcon; export const Plus: LucideIcon; export const Minus: LucideIcon; export const Trash2: LucideIcon; export const Edit: LucideIcon; export const Save: LucideIcon; export const Clock: LucideIcon; export const Calendar: LucideIcon; export const Star: LucideIcon; export const Heart: LucideIcon; export const ThumbsUp: LucideIcon; export const ThumbsDown: LucideIcon; export const Flag: LucideIcon; export const Bookmark: LucideIcon; export const Tag: LucideIcon; export const Hash: LucideIcon; export const AtSign: LucideIcon; export const Link2: LucideIcon; export const Unlink: LucideIcon; export const Lock: LucideIcon; export const Unlock: LucideIcon; export const Key: LucideIcon; export const Shield: LucideIcon; export const Bell: LucideIcon; export const BellOff: LucideIcon; export const Volume2: LucideIcon; export const VolumeX: LucideIcon; export const Mic: LucideIcon; export const MicOff: LucideIcon; export const Camera: LucideIcon; export const Video: LucideIcon; export const Printer: LucideIcon; export const Mail: LucideIcon; export const Phone: LucideIcon; export const Home: LucideIcon; export const List: LucideIcon; export const Grid: LucideIcon; export const LayoutGrid: LucideIcon; export const LayoutList: LucideIcon; export const Columns: LucideIcon; export const Rows: LucideIcon; export const SlidersHorizontal: LucideIcon; export const History: LucideIcon; export const Languages: LucideIcon; export const BarChart3: LucideIcon; export const BarChart: LucideIcon; export const PieChart: LucideIcon; export const LineChart: LucideIcon; export const TrendingUp: LucideIcon; export const TrendingDown: LucideIcon; export const Activity: LucideIcon; export const Zap: LucideIcon; export const Terminal: LucideIcon; export const Code: LucideIcon; export const Code2: LucideIcon; export const FileCode: LucideIcon; export const Folder: LucideIcon; export const FolderOpen: LucideIcon; export const File: LucideIcon; export const Files: LucideIcon; export const MoreHorizontal: LucideIcon; export const MoreVertical: LucideIcon; export const Grip: LucideIcon; export const GripVertical: LucideIcon; export const Move: LucideIcon; export const Crosshair: LucideIcon; export const Target: LucideIcon; export const Compass: LucideIcon; export const Navigation: LucideIcon; export const Focus: LucideIcon; export const Scan: LucideIcon; export const QrCode: LucideIcon; export const Table2: LucideIcon; export const Table: LucideIcon; export const CreditCard: LucideIcon; export const LayoutGrid: LucideIcon; export const IdCard: LucideIcon; } declare module 'mermaid' { interface MermaidConfig { startOnLoad?: boolean; theme?: string; securityLevel?: string; fontFamily?: string; logLevel?: string; flowchart?: Record; sequence?: Record; gantt?: Record; class?: Record; } interface MermaidAPI { initialize: (config: MermaidConfig) => void; render: (id: string, text: string, svgContainingElement?: Element) => Promise<{ svg: string }>; parse: (text: string) => Promise; } const mermaid: MermaidAPI; export default mermaid; } declare module 'maplibre-gl' { export interface IControl { onAdd(map: Map): HTMLElement; onRemove(map: Map): void; getDefaultPosition?: () => string; } export class Map { constructor(options: MapOptions); on(type: string, listener: (e: MapLayerMouseEvent) => void): this; on(type: string, layerId: string, listener: (e: MapLayerMouseEvent) => void): this; off(type: string, listener: (e: MapLayerMouseEvent) => void): this; off(type: string, layerId: string, listener: (e: MapLayerMouseEvent) => void): this; once(type: string, listener: () => void): this; remove(): void; getSource(id: string): GeoJSONSource | undefined; getLayer(id: string): unknown; addSource(id: string, source: unknown): this; addLayer(layer: unknown, before?: string): this; removeLayer(id: string): this; removeSource(id: string): this; moveLayer(id: string, beforeId?: string): this; setFilter(layerId: string, filter: unknown): this; setPaintProperty(layerId: string, property: string, value: unknown): this; setLayoutProperty(layerId: string, property: string, value: unknown): this; fitBounds(bounds: LngLatBoundsLike, options?: FitBoundsOptions): this; flyTo(options: FlyToOptions): this; getCenter(): LngLat; getZoom(): number; setCenter(center: LngLatLike): this; setZoom(zoom: number): this; resize(): this; getBounds(): LngLatBounds; getCanvas(): HTMLCanvasElement; getContainer(): HTMLElement; queryRenderedFeatures(point?: PointLike, options?: unknown): MapGeoJSONFeature[]; project(lngLat: LngLatLike): Point; unproject(point: PointLike): LngLat; loaded(): boolean; isStyleLoaded(): boolean; isMoving(): boolean; isZooming(): boolean; isRotating(): boolean; triggerRepaint(): void; easeTo(options: unknown): this; jumpTo(options: unknown): this; panTo(lngLat: LngLatLike, options?: unknown): this; zoomTo(zoom: number, options?: unknown): this; addControl(control: IControl | NavigationControl | ScaleControl, position?: string): this; removeControl(control: IControl): this; setStyle(style: StyleSpecification | string, options?: { diff?: boolean }): this; getStyle(): StyleSpecification; } export interface MapGeoJSONFeature { type: 'Feature'; geometry: GeoJSON.Geometry; properties: Record; id?: string | number; layer?: unknown; source?: string; sourceLayer?: string; state?: Record; } export class GeoJSONSource { setData(data: GeoJSON.GeoJSON): this; } export class Popup { constructor(options?: PopupOptions); setLngLat(lngLat: LngLatLike): this; setHTML(html: string): this; setText(text: string): this; addTo(map: Map): this; remove(): this; isOpen(): boolean; } export class Marker { constructor(options?: MarkerOptions); setLngLat(lngLat: LngLatLike): this; addTo(map: Map): this; remove(): this; getElement(): HTMLElement; setPopup(popup: Popup): this; getPopup(): Popup; } export class NavigationControl { constructor(options?: NavigationControlOptions); } export class ScaleControl { constructor(options?: ScaleControlOptions); } export class LngLat { constructor(lng: number, lat: number); lng: number; lat: number; wrap(): LngLat; toArray(): [number, number]; toString(): string; distanceTo(lngLat: LngLat): number; } export class LngLatBounds { constructor(sw?: LngLatLike, ne?: LngLatLike); extend(obj: LngLatLike | LngLatBoundsLike): this; getCenter(): LngLat; getSouthWest(): LngLat; getNorthEast(): LngLat; getNorthWest(): LngLat; getSouthEast(): LngLat; getWest(): number; getSouth(): number; getEast(): number; getNorth(): number; toArray(): [[number, number], [number, number]]; toString(): string; isEmpty(): boolean; contains(lngLat: LngLatLike): boolean; } export class Point { constructor(x: number, y: number); x: number; y: number; } export type LngLatLike = LngLat | [number, number] | { lng: number; lat: number } | { lon: number; lat: number }; export type LngLatBoundsLike = LngLatBounds | [LngLatLike, LngLatLike] | [number, number, number, number]; export type PointLike = Point | [number, number]; export interface MapOptions { container: HTMLElement | string; style: StyleSpecification | string; center?: LngLatLike; zoom?: number; bearing?: number; pitch?: number; bounds?: LngLatBoundsLike; fitBoundsOptions?: FitBoundsOptions; attributionControl?: boolean; customAttribution?: string | string[]; interactive?: boolean; hash?: boolean | string; maxBounds?: LngLatBoundsLike; maxZoom?: number; minZoom?: number; maxPitch?: number; minPitch?: number; scrollZoom?: boolean; boxZoom?: boolean; dragRotate?: boolean; dragPan?: boolean; keyboard?: boolean; doubleClickZoom?: boolean; touchZoomRotate?: boolean; touchPitch?: boolean; cooperativeGestures?: boolean; trackResize?: boolean; locale?: Record; fadeDuration?: number; crossSourceCollisions?: boolean; collectResourceTiming?: boolean; clickTolerance?: number; preserveDrawingBuffer?: boolean; antialias?: boolean; refreshExpiredTiles?: boolean; maxTileCacheSize?: number; transformRequest?: (url: string, resourceType: string) => unknown; localIdeographFontFamily?: string; pitchWithRotate?: boolean; pixelRatio?: number; validateStyle?: boolean; } export interface StyleSpecification { version: number; name?: string; metadata?: unknown; center?: [number, number]; zoom?: number; bearing?: number; pitch?: number; light?: unknown; sources: Record; sprite?: string; glyphs?: string; layers: unknown[]; terrain?: unknown; fog?: unknown; transition?: unknown; } export interface PopupOptions { closeButton?: boolean; closeOnClick?: boolean; closeOnMove?: boolean; focusAfterOpen?: boolean; anchor?: string; offset?: number | PointLike | Record; className?: string; maxWidth?: string; } export interface MarkerOptions { element?: HTMLElement; anchor?: string; offset?: PointLike; color?: string; scale?: number; draggable?: boolean; clickTolerance?: number; rotation?: number; rotationAlignment?: string; pitchAlignment?: string; } export interface NavigationControlOptions { showCompass?: boolean; showZoom?: boolean; visualizePitch?: boolean; } export interface ScaleControlOptions { maxWidth?: number; unit?: string; } export interface FitBoundsOptions { padding?: number | { top?: number; bottom?: number; left?: number; right?: number }; offset?: PointLike; maxZoom?: number; maxDuration?: number; linear?: boolean; easing?: (t: number) => number; essential?: boolean; } export interface FlyToOptions { center?: LngLatLike; zoom?: number; bearing?: number; pitch?: number; duration?: number; easing?: (t: number) => number; offset?: PointLike; animate?: boolean; essential?: boolean; padding?: number | { top?: number; bottom?: number; left?: number; right?: number }; } export interface MapLayerMouseEvent { type: string; target: Map; originalEvent: MouseEvent; point: Point; lngLat: LngLat; preventDefault(): void; defaultPrevented: boolean; features?: MapGeoJSONFeature[]; } } declare module '@mui/material' { export const Box: React.FC>; export const Container: React.FC>; export const Typography: React.FC>; export const Paper: React.FC>; export const Grid: React.FC>; export const Card: React.FC>; export const CardContent: React.FC>; export const CardHeader: React.FC>; export const CardActions: React.FC>; export const Button: React.FC>; export const IconButton: React.FC>; export const TextField: React.FC>; export const Select: React.FC>; export const MenuItem: React.FC>; export const FormControl: React.FC>; export const FormLabel: React.FC>; export const FormHelperText: React.FC>; export const InputLabel: React.FC>; export const Input: React.FC>; export const Checkbox: React.FC>; export const Radio: React.FC>; export const RadioGroup: React.FC>; export const Switch: React.FC>; export const Slider: React.FC>; export const Tabs: React.FC>; export const Tab: React.FC>; export const TabPanel: React.FC>; export const AppBar: React.FC>; export const Toolbar: React.FC>; export const Drawer: React.FC>; export const Dialog: React.FC>; export const DialogTitle: React.FC>; export const DialogContent: React.FC>; export const DialogActions: React.FC>; export const Modal: React.FC>; export const Tooltip: React.FC>; export const Popover: React.FC>; export const Menu: React.FC>; export const List: React.FC>; export const ListItem: React.FC>; export const ListItemText: React.FC>; export const ListItemIcon: React.FC>; export const ListItemButton: React.FC>; export const Divider: React.FC>; export const Avatar: React.FC>; export const Badge: React.FC>; export const Chip: React.FC>; export const Alert: React.FC>; export const AlertTitle: React.FC>; export const Snackbar: React.FC>; export const CircularProgress: React.FC>; export const LinearProgress: React.FC>; export const Skeleton: React.FC>; export const Table: React.FC>; export const TableBody: React.FC>; export const TableCell: React.FC>; export const TableContainer: React.FC>; export const TableHead: React.FC>; export const TableRow: React.FC>; export const TablePagination: React.FC>; export const TableSortLabel: React.FC>; export const Accordion: React.FC>; export const AccordionSummary: React.FC>; export const AccordionDetails: React.FC>; export const Breadcrumbs: React.FC>; export const Link: React.FC>; export const Pagination: React.FC>; export const Rating: React.FC>; export const Stepper: React.FC>; export const Step: React.FC>; export const StepLabel: React.FC>; export const StepContent: React.FC>; export const SpeedDial: React.FC>; export const SpeedDialAction: React.FC>; export const SpeedDialIcon: React.FC>; export const ToggleButton: React.FC>; export const ToggleButtonGroup: React.FC>; export const Fab: React.FC>; export const FormGroup: React.FC>; export const FormControlLabel: React.FC>; export const InputAdornment: React.FC>; export const Autocomplete: React.FC>; export const Stack: React.FC>; export const Collapse: React.FC>; export const Fade: React.FC>; export const Grow: React.FC>; export const Slide: React.FC>; export const Zoom: React.FC>; export const useTheme: () => unknown; export const useMediaQuery: (query: string) => boolean; export const createTheme: (options: unknown) => unknown; export const ThemeProvider: React.FC>; export const CssBaseline: React.FC; export const GlobalStyles: React.FC>; export const styled: (component: unknown, options?: unknown) => unknown; }