import type { Generic } from 'adopted-style-sheets';
import type { MsgPropType, PropChecked, PropDisabled, PropHideMsg, PropHideLabel, PropIndeterminate, PropLabelAlign, PropLabelWithExpertSlot, PropMsg, PropName, PropRequired, PropSyncValueBySelector, PropTouched, PropShortKey, PropAccessKey } from '../props';
import type { AnyIconFontClass, InputTypeOnDefault, StencilUnknown, Stringified } from '../types';
export declare const inputCheckboxVariantOptions: readonly ["button", "default", "switch"];
export type InputCheckboxVariant = (typeof inputCheckboxVariantOptions)[number];
export type InputCheckboxIconsProp = {
    checked: AnyIconFontClass;
    indeterminate?: AnyIconFontClass;
    unchecked?: AnyIconFontClass;
} | {
    checked?: AnyIconFontClass;
    indeterminate: AnyIconFontClass;
    unchecked?: AnyIconFontClass;
} | {
    checked?: AnyIconFontClass;
    indeterminate?: AnyIconFontClass;
    unchecked: AnyIconFontClass;
};
export type InputCheckboxIconsState = {
    checked: AnyIconFontClass;
    indeterminate: AnyIconFontClass;
    unchecked: AnyIconFontClass;
};
type RequiredProps = PropLabelWithExpertSlot;
type OptionalProps = {
    hint: string;
    icons: Stringified<InputCheckboxIconsProp>;
    msg: Stringified<MsgPropType>;
    on: InputTypeOnDefault;
    tabIndex: number;
    value: Stringified<StencilUnknown>;
    variant: InputCheckboxVariant;
} & PropAccessKey & PropChecked & PropDisabled & PropHideMsg & PropHideLabel & PropIndeterminate & PropName & PropRequired & PropShortKey & PropSyncValueBySelector & PropTouched & PropLabelAlign;
type RequiredStates = {
    icons: InputCheckboxIconsState;
    id: string;
    value: StencilUnknown;
    variant: InputCheckboxVariant;
} & PropChecked & PropHideMsg & PropIndeterminate & PropLabelWithExpertSlot;
type OptionalStates = {
    hint: string;
    on: InputTypeOnDefault;
    tabIndex: number;
} & PropAccessKey & PropDisabled & PropHideLabel & PropMsg & PropName & PropRequired & PropShortKey & PropTouched & PropLabelAlign;
export type InputCheckboxProps = Generic.Element.Members<RequiredProps, OptionalProps>;
export type InputCheckboxStates = Generic.Element.Members<RequiredStates, OptionalStates>;
export type InputCheckboxWatches = Generic.Element.Watchers<RequiredProps, OptionalProps>;
export type InputCheckboxAPI = Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates>;
export {};
