import { default as React } from 'react';
import { RegisterOptions } from 'react-hook-form';
import { DisableMode } from '../common/common';
/**
 * Component & its Props
 */
export interface CheckBoxCoreDetails {
    defaultChecked: boolean;
    groupLabel: boolean;
    label: string | React.ReactNode;
    value: string;
    exceptionInfo?: string;
    exceptionMode?: CheckBoxMode;
    exceptionType?: ExceptionType;
    isDisabled?: DisableMode;
    isException?: boolean;
    prefix?: React.ReactNode;
}
interface CheckBoxWithLabelProps extends CommonProps {
    allCheckBoxValues: string[];
    checkBox: CheckBoxCoreDetails;
    index: number;
    value: any;
    groupLabelCheckBox?: CheckBoxCoreDetails;
    onChangeHandler: (event: React.ChangeEvent<HTMLInputElement>) => void;
}
interface CommonProps {
    mode: CheckBoxMode;
    name: string;
    checkBoxContainerStyle?: React.CSSProperties;
    checkBoxIconStyle?: React.CSSProperties;
    checkBoxStyle?: React.CSSProperties;
    checkedIconColor?: string;
    draggable?: boolean;
    infoIconContainerStyle?: React.CSSProperties;
    initialScrollOffSet?: number;
    isDisabled?: DisableMode;
    labelCheckBoxStyle?: React.CSSProperties;
    labelStyle?: React.CSSProperties;
    selectionLimit?: number;
    width?: number;
    onDragStart?: (e: React.DragEvent, value: string) => void;
    onScroll?: (scrollYOffset: number) => void;
}
export type ExceptionType = "info" | "alert";
export type CheckBoxMode = "always_on" | "hover_only" | "checked_or_hover" | "off";
export interface Props extends CommonProps {
    checkBoxes: CheckBoxCoreDetails[];
    registerOptions?: RegisterOptions;
    rowHeight?: number;
    style?: React.CSSProperties;
}
export declare function LabeledGroupedCheckBoxWithAutoSizer({ name, checkBoxes, mode, isDisabled, style, labelStyle, labelCheckBoxStyle, checkBoxStyle, width, registerOptions, checkedIconColor, checkBoxIconStyle, checkBoxContainerStyle, draggable, selectionLimit, infoIconContainerStyle, onDragStart, rowHeight, initialScrollOffSet, onScroll, }: Readonly<Props>): import("react/jsx-runtime").JSX.Element;
export declare const CheckBoxWithLabel: React.ForwardRefExoticComponent<Readonly<CheckBoxWithLabelProps> & React.RefAttributes<HTMLInputElement>>;
export declare const onChangeHandler: ({ event, value, allCheckBoxValues, groupLabelCheckBox, onChange, }: Readonly<{
    allCheckBoxValues: string[];
    event: React.ChangeEvent<HTMLInputElement>;
    value: any;
    groupLabelCheckBox?: CheckBoxCoreDetails;
    onChange: (..._event: any[]) => void;
}>) => void;
export {};
