import { UiElement } from '../../UiElement.js';
import { EndPressConfig } from '../../../controllers/ActionController.js';
import { PropertyValues } from 'lit';
/**
 * A base class for UI elements that can be checked (as in a form: checkbox, switch, radio).
 *
 * @fires change - when the checked element changes it's checked state
 * @fires input - when the checked element changes it's checked state
 */
export default class CheckedElement extends UiElement {
    #private;
    static readonly formAssociated = true;
    get form(): HTMLFormElement | null;
    get type(): string;
    get disabled(): boolean;
    /**
     * When set, the button is a disabled state.
     * @attribute
     */
    set disabled(value: boolean);
    /**
     * The name of the form control, submitted as a pair with the control's value as part of the form data.
     * @attribute
     */
    accessor name: string | undefined;
    /**
     * When a form is submitted, only checkboxes which are currently checked are submitted to the server,
     * and the reported value is the `value` of the value attribute.
     * If the `value` is not otherwise specified, it is the string `on` by default.
     * @attribute
     */
    accessor value: string | undefined;
    /**
     * A Boolean attribute indicating whether this checkbox is checked.
     *
     * A checkbox's value is only included in the submitted data
     * if the checkbox is currently `checked`. If it is, then the value
     * of the checkbox's `value` attribute is reported as the input's value.
     * @attribute
     */
    accessor checked: boolean | undefined;
    /**
     * In addition to the checked and unchecked states, there is a third state a checkbox can be in: indeterminate.
     * This is a state in which it's impossible to say whether the item is toggled on or off.
     *
     * If you submit a form with an indeterminate checkbox, the same thing happens as
     * if the checkbox were unchecked — no data is submitted to represent the checkbox.
     * @attribute
     */
    accessor indeterminate: boolean | undefined;
    /**
     * Set to true to mark the checked element as required.
     * @attribute
     */
    accessor required: boolean | undefined;
    /**
     * While the element can be easily styled with the `:valid` and `:invalid` pseudo classes
     * it also exposes an attribute to style the element as invalid. This attribute changes
     * when the element validation is performed.
     * @attribute
     */
    accessor invalid: boolean | undefined;
    protected readonly _validationError: string;
    constructor();
    connectedCallback(): void;
    protected updated(cp: PropertyValues<this>): void;
    /**
     * When form-associated custom elements are supported in the browser it
     * is called when the form has been reset
     */
    formResetCallback(): void;
    /**
     * When form-associated custom elements are supported in the browser it
     * is called when the form state has been restored
     *
     * @param formState Restored value
     */
    formStateRestoreCallback(formState?: string): void;
    handleClick(e: MouseEvent): void;
    endPress(config: EndPressConfig): void;
    protected handleFocus(): void;
    protected handleBlur(): void;
    protected _setChecked(value?: boolean): void;
    protected _updateFormValue(): void;
    notifyChange(): void;
    protected _invalidHandler(): void;
    toggle(): void;
    protected _postCheckedChange(): void;
    /**
     * Returns true if the element's value has no validity problems; false otherwise.
     * Fires an invalid event at the element in the latter case.
     */
    checkValidity(): boolean;
    /**
     * Returns `true` if internals's target element has no validity problems; otherwise, returns false,
     * fires an invalid event at the element, and (if the event isn't canceled) reports
     * the problem to the user.
     */
    reportValidity(): boolean;
}
//# sourceMappingURL=CheckedElement.d.ts.map