import Vue from 'vue';

import { YButton } from './button';
import { YSwitch } from './switch';
import { YRadio } from './radio';
import { YIcon } from './icon';
import { YInput } from './input';
import { YTag } from './tag';
import { YCarousel } from './carousel';
import { YCarouselItem } from './carousel-item';
import { YCheckbox } from './checkbox';
import { YButtonGroup } from './button-group';
import { YCol } from './col';
import { YRow } from './row';
import { YPagination } from './pagination';
import { YSearch } from './search';
import { YSelect } from './select';
import { YRadioGroup } from './radio-group';
import { YLayout } from './layout';
import { YSpin } from './spin';
import { YBadge } from './badge';
import { YScrollbar } from './scrollbar';
import { YFixedButton } from './fixed-button';
import { YSteps } from './steps';
import { YStep } from './step';
import { YDialog } from './dialog';
import { YTabPane } from './tab-pane';
import { YTabs } from './tabs';
import { YTimeline } from './timeline';
import { YTimelineItem } from './timeline-Item';
import { YUpload } from './upload';
import { YBreadcrumb } from './breadcrumb';

import { YBreadcrumbItem } from './breadcrumb-item';
import { YMenu } from './menu';
import { YDropdown } from './dropdown';
export interface InstallationOptions {
  locale: any;
  i18n: any;
  size: string;
}

/** The version of y-ui */
export const version: string;

/**
 * Install all y-ui components into Vue.
 * Please do not invoke this method directly.
 * Call `Vue.use(YUI)` to install.
 */
export function install(vue: typeof Vue, options: InstallationOptions): void;

/** Button Component */
export class Button extends YButton {}

/** Switch Component */
export class Switch extends YSwitch {}

/** Radio Component */
export class Radio extends YRadio {}

/** Icon Component */
export class Icon extends YIcon {}

/** Input Component */
export class Input extends YInput {}

/** Tag Component */
export class Tag extends YTag {}

/** Checkbox Component */
export class Checkbox extends YCheckbox {}

/** ButtonGroup Component */
export class ButtonGroup extends YButtonGroup {}

/** Col Component */
export class Col extends YCol {}

/** Row Component */
export class Row extends YRow {}

/** PaginationNormal Component */
export class Pagination extends YPagination {}

/** Search Component */
export class Search extends YSearch {}

/** Select Component */
export class Select extends YSelect {}

/** RadioGroup Component */
export class RadioGroup extends YRadioGroup {}

/** Layout Component */
export class Layout extends YLayout {}

/** Spin Component */
export class Spin extends YSpin {}

/** Badge Component */
export class Badge extends YBadge {}

/** Scrollbar Component */
export class Scrollbar extends YScrollbar {}

/** Breadcrumb Component */
export class Breadcrumb extends YBreadcrumb {}

/** BreadcrumbItem Component */
export class BreadcrumbItem extends YBreadcrumbItem {}
/** FixedButton Component */
export class FixedButton extends YFixedButton {}

/** Steps Component */
export class Steps extends YSteps {}

/** Step Component */
export class Step extends YStep {}

/** Dialog Component */
export class Dialog extends YDialog {}
/** Carousel Component */
export class Carousel extends YCarousel {}

/** CarouselItem Component */
export class CarouselItem extends YCarouselItem {}

/** Timeline Component */
export class Timeline extends YTimeline {}

/** TabPane Component */
export class TabPane extends YTabPane {}

/** Tabs Component */
export class Tabs extends YTabs {}

/** TimelineItem Component */
export class TimelineItem extends YTimelineItem {}

/** Upload Component */
export class Upload extends YUpload {}

/** Menu Component */
export class Menu extends YMenu {}
/** Dropdown Component */
export class Dropdown extends YDropdown {}
