// Stub declarations for UI library packages not yet installed
// These components exist but their underlying packages are missing from node_modules

declare module '@radix-ui/react-aspect-ratio' {
  import type { ComponentPropsWithoutRef } from 'react';
  const Root: React.FC<ComponentPropsWithoutRef<'div'> & { ratio?: number }>;
  export { Root };
}

declare module '@radix-ui/react-context-menu' {
  import type { FC, ReactNode, ComponentPropsWithoutRef } from 'react';
  export const Root: FC<{ children?: ReactNode }>;
  export const Trigger: FC<ComponentPropsWithoutRef<'span'>>;
  export const Content: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const Item: FC<
    ComponentPropsWithoutRef<'div'> & { inset?: boolean; className?: string; onSelect?: () => void }
  >;
  export const CheckboxItem: FC<
    ComponentPropsWithoutRef<'div'> & {
      checked?: boolean;
      onCheckedChange?: (v: boolean) => void;
      className?: string;
    }
  >;
  export const RadioItem: FC<
    ComponentPropsWithoutRef<'div'> & { value: string; className?: string }
  >;
  export const Label: FC<ComponentPropsWithoutRef<'div'> & { inset?: boolean; className?: string }>;
  export const Separator: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const Sub: FC<{ children?: ReactNode }>;
  export const SubTrigger: FC<
    ComponentPropsWithoutRef<'div'> & { inset?: boolean; className?: string }
  >;
  export const SubContent: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const RadioGroup: FC<{
    value?: string;
    onValueChange?: (v: string) => void;
    children?: ReactNode;
  }>;
  export const ItemIndicator: FC<{ children?: ReactNode }>;
  export const Portal: FC<{ children?: ReactNode }>;
}

declare module '@radix-ui/react-hover-card' {
  import type { FC, ReactNode, ComponentPropsWithoutRef } from 'react';
  export const Root: FC<{ children?: ReactNode; openDelay?: number; closeDelay?: number }>;
  export const Trigger: FC<ComponentPropsWithoutRef<'a'> & { asChild?: boolean }>;
  export const Content: FC<
    ComponentPropsWithoutRef<'div'> & { align?: string; sideOffset?: number; className?: string }
  >;
  export const Portal: FC<{ children?: ReactNode }>;
}

declare module '@radix-ui/react-menubar' {
  import type { FC, ReactNode, ComponentPropsWithoutRef } from 'react';
  export const Root: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const Menu: FC<{ children?: ReactNode }>;
  export const Trigger: FC<ComponentPropsWithoutRef<'button'> & { className?: string }>;
  export const Content: FC<
    ComponentPropsWithoutRef<'div'> & {
      align?: string;
      alignOffset?: number;
      sideOffset?: number;
      className?: string;
    }
  >;
  export const Item: FC<ComponentPropsWithoutRef<'div'> & { inset?: boolean; className?: string }>;
  export const CheckboxItem: FC<
    ComponentPropsWithoutRef<'div'> & {
      checked?: boolean;
      onCheckedChange?: (v: boolean) => void;
      className?: string;
    }
  >;
  export const RadioItem: FC<
    ComponentPropsWithoutRef<'div'> & { value: string; className?: string }
  >;
  export const Label: FC<ComponentPropsWithoutRef<'div'> & { inset?: boolean; className?: string }>;
  export const Separator: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const Sub: FC<{ children?: ReactNode }>;
  export const SubTrigger: FC<
    ComponentPropsWithoutRef<'div'> & { inset?: boolean; className?: string }
  >;
  export const SubContent: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const RadioGroup: FC<{
    value?: string;
    onValueChange?: (v: string) => void;
    children?: ReactNode;
  }>;
  export const ItemIndicator: FC<{ children?: ReactNode }>;
  export const Portal: FC<{ children?: ReactNode }>;
  export const Group: FC<{ children?: ReactNode }>;
  export const Bar: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
}

declare module '@radix-ui/react-navigation-menu' {
  import type { FC, ComponentPropsWithoutRef } from 'react';
  export const Root: FC<ComponentPropsWithoutRef<'nav'> & { className?: string }>;
  export const List: FC<ComponentPropsWithoutRef<'ul'> & { className?: string }>;
  export const Item: FC<ComponentPropsWithoutRef<'li'> & { value?: string }>;
  export const Trigger: FC<ComponentPropsWithoutRef<'button'> & { className?: string }>;
  export const Content: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const Link: FC<
    ComponentPropsWithoutRef<'a'> & { active?: boolean; asChild?: boolean; className?: string }
  >;
  export const Viewport: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
  export const Indicator: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
}

declare module 'react-resizable-panels' {
  import type { FC, ComponentPropsWithoutRef } from 'react';
  export const PanelGroup: FC<
    ComponentPropsWithoutRef<'div'> & { direction: 'horizontal' | 'vertical'; className?: string }
  >;
  export const Panel: FC<
    ComponentPropsWithoutRef<'div'> & {
      defaultSize?: number;
      minSize?: number;
      maxSize?: number;
      className?: string;
      collapsible?: boolean;
      onCollapse?: () => void;
      onResize?: (size: number) => void;
    }
  >;
  export const PanelResizeHandle: FC<ComponentPropsWithoutRef<'div'> & { className?: string }>;
}
