/// <reference types="react" />

import * as React from 'react';

interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
    onChange?: any;
    onClick?: any;
    onKeyDown?: any;
}

export interface SwitchProps extends HTMLAttributesWeak {
    /**
     * 自定义类名
     */
    className?: string;

    /**
     * 自定义内敛样式
     */
    style?: React.CSSProperties;

    /**
     * 开关状态改变是触发此事件
     */
    onChange?: (checked: boolean, e: any) => void;

    /**
     * 开关当前的值(针对受控组件)
     */
    checked?: boolean;

    /**
     * 开关默认值 (针对非受控组件)
     */
    defaultChecked?: boolean;

    /**
     * 表示开关被禁用
     */
    disabled?: boolean;
    /**
     * 是否在加载中
     */
    loading?: boolean;
    /**
     * switch的尺寸
     */
    size?: 'medium' | 'small';

    /**
     * 鼠标点击事件
     */
    onClick?: (e: any) => void;

    /**
     * 键盘按键事件
     */
    onKeyDown?: (e: any) => void;
}

export default class Switch extends React.Component<SwitchProps, any> {}
