import { App, Component } from 'vue'

// 按钮组件属性
export interface ButtonProps {
  type?: 'default' | 'primary' | 'success' | 'warning' | 'danger'
  size?: 'small' | 'medium' | 'large'
  disabled?: boolean
}

// 按钮组件实例
export interface ButtonInstance {
  $el: HTMLButtonElement
}

// 组件库配置选项
export interface NiUIOptions {
  size?: 'small' | 'medium' | 'large'
}

// 组件库实例
export interface NiUI {
  install: (app: App, options?: NiUIOptions) => void
}

// 组件类型声明
declare module '@vue/runtime-core' {
  export interface GlobalComponents {
    NiButton: typeof import('../components/button')['Button']
  }
}

// 组件导出
export type { Button } from '../components/button'

// 组件库导出
export * from './components' 