import React, { LabelHTMLAttributes } from "react";
import { WithoutMethod, Omit } from "../_type";
import { ControlledProps, ChangeContext } from "../form/controlled";
/**
* `CheckInput` 组件所接收的参数
*/
export interface CheckProps extends ControlledProps, Omit, "onChange" | "defaultValue"> {
/**
* 获取内部 `input` 的引用
*/
inputRef?: React.Ref;
/**
* 名称,对于使用 `CheckGroup` 等管理时必传
*/
name?: string;
/**
* 选项类型
*/
type: "radio" | "checkbox";
/**
* 默认是否已经勾选
*/
defaultValue?: boolean;
/**
* 是否已经勾选
*/
value?: boolean;
/**
* 勾选状态发生变更时回调
*/
onChange?: (value: boolean, context: CheckChangeContext) => void;
/**
* 是否半选状态(仅对 `checkbox` 生效)
* @default false
*/
indeterminate?: boolean;
/**
* 是否可用
* @default false
*/
disabled?: boolean;
/**
* 渲染方式,设置为 `block` 会独占一行
* @default "inline"
*/
display?: "inline" | "block";
/** 文本解释内容,可用于解释选项的作用 */
tooltip?: React.ReactNode;
/** 点击时触发 */
onClick?: (event: React.MouseEvent) => void;
}
/**
* 为变更事件提供额外的内容
*/
export interface CheckChangeContext extends ChangeContext {
/**
* 发生变化的选项组件实例
*/
check: ReadonlyCheckProps;
}
/**
* 组件实例只读属性集合
*/
export interface ReadonlyCheckProps extends Readonly> {
}
/**
* Check 组件支持使用 CheckContext 进行状态托管
*/
export declare const CheckContext: React.Context;
/**
* 托管 Check 组件的状态,请提供 inject() 方法注入托管好的 props
*/
export interface CheckContextValue {
inject: (props: CheckProps) => CheckProps;
}
export declare const Check: React.ForwardRefExoticComponent>;