/**
 * gnexus-ui-kit ships plain-JS Vue components (no bundled types).
 * Declare the module so TS allows importing components; props are checked
 * at runtime by the kit itself.
 */
declare module "gnexus-ui-kit/vue" {
  import type { DefineComponent } from "vue";

  type GnComponent = DefineComponent<Record<string, unknown>, Record<string, unknown>, unknown>;

  export const GnexusUiVue: {
    install: (app: { component: (name: string, component: unknown) => void }) => void;
  };

  export const GnButton: GnComponent;
  export const GnIconButton: GnComponent;
  export const GnCopyButton: GnComponent;
  export const GnBadge: GnComponent;
  export const GnAlert: GnComponent;
  export const GnInput: GnComponent;
  export const GnTextarea: GnComponent;
  export const GnSelect: GnComponent;
  export const GnCheckbox: GnComponent;
  export const GnSwitch: GnComponent;
  export const GnRadio: GnComponent;
  export const GnRadioGroup: GnComponent;
  export const GnRange: GnComponent;
  export const GnCombobox: GnComponent;
  export const GnFileUpload: GnComponent;
  export const GnTabs: GnComponent;
  export const GnRouterTabs: GnComponent;
  export const GnAccordion: GnComponent;
  export const GnDropdown: GnComponent;
  export const GnPopover: GnComponent;
  export const GnTooltip: GnComponent;
  export const GnNavigationShell: GnComponent;
  export const GnNavList: GnComponent;
  export const GnModal: GnComponent;
  export const GnDrawer: GnComponent;
  export const GnToastProvider: GnComponent;
  export const GnConfirmDialog: GnComponent;
  export const GnTable: GnComponent;
  export const GnToolbar: GnComponent;
  export const GnSearchField: GnComponent;
  export const GnPagination: GnComponent;
  export const GnDescriptionList: GnComponent;
  export const GnDefinitionList: GnComponent;
  export const GnTimeline: GnComponent;
  export const GnActivityLog: GnComponent;
  export const GnCard: GnComponent;
  export const GnHorizontalCard: GnComponent;
  export const GnStatusCard: GnComponent;
  export const GnMetricCard: GnComponent;
  export const GnActionCard: GnComponent;
  export const GnLoginCard: GnComponent;
  export const GnList: GnComponent;
  export const GnActionList: GnComponent;
  export const GnEmptyState: GnComponent;
  export const GnSkeleton: GnComponent;
  export const GnLoader: GnComponent;
  export const GnAvatar: GnComponent;
  export const GnAvatarStack: GnComponent;
  export const GnIdentity: GnComponent;
  export const GnChip: GnComponent;
  export const GnChipGroup: GnComponent;
  export const GnTagInput: GnComponent;
  export const GnInputGroup: GnComponent;
  export const GnRepeater: GnComponent;
  export const GnSteps: GnComponent;
  export const GnProgress: GnComponent;
  export const GnProgressStages: GnComponent;
  export const GnUsageMeter: GnComponent;
  export const GnPageHeader: GnComponent;

  export function useToast(): {
    success: (opts: { title: string; text?: string }) => void;
    error: (opts: { title: string; text?: string }) => void;
    warning: (opts: { title: string; text?: string }) => void;
    info: (opts: { title: string; text?: string }) => void;
  };
}