import { type IFormAssociated } from '../../../Forms/Behaviors/FormAssociated';
import type { FormRestoreReason } from '../../../Forms/FormRestoreReason';
import type { FormRestoreState } from '../../../Forms/FormRestoreState';
import { CustomElement } from './CustomElement';
import type { ICustomFormElement } from './Interfaces/ICustomFormElement';
declare const CustomFormElement_base: import("../../../Index").ControlBehaviorReturn<typeof CustomElement & CustomElementConstructor & {
    readonly formAssociated: true;
}, IFormAssociated>;
/**
 * The base class of all custom components.
 *
 * @public
 */
export declare abstract class CustomFormElement extends CustomFormElement_base implements ICustomFormElement, IFormAssociated {
    private _form;
    /**
     * Constructs a new instance of the `CustomFormElement` class.
     *
     * @protected
     */
    constructor();
    /**
     * Gets or sets the `form` property.
     *
     * @public
     * @override
     */
    get form(): HTMLFormElement | null;
    set form(value: HTMLFormElement | null);
    /**
     * @public
     * @readonly
     */
    get validity(): ValidityState;
    /**
     * @public
     * @readonly
     */
    get validationMessage(): string;
    /**
     * @public
     * @readonly
     */
    get willValidate(): boolean;
    /**
     * A callback that is invoked when the element disabled state changes.
     *
     * @public
     * @abstract
     * @param disabled - The disabled state.
     */
    abstract formDisabledCallback?(disabled: boolean): void;
    /**
     * A callback that is invoked when the element will be reseted.
     *
     * @public
     * @abstract
     */
    abstract formResetCallback?(): void;
    /**
     * A callback that is invoked when the element will be restored.
     *
     * @public
     * @abstract
     * @param state - The restore state.
     * @param reason - The restore reason.
     */
    abstract formStateRestoreCallback?(state: FormRestoreState | null, reason: FormRestoreReason): void;
    /**
     * Returns true if internals's target element has no validity problems; false otherwise.
     * Fires an invalid event at the element in the latter case.
     *
     * @public
     */
    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.
     *
     * @public
     */
    reportValidity(): boolean;
    /**
     * A callback that is invoked when the element is associated with a form.
     *
     * @param error - The error message.
     * @public
     */
    formAssociatedCallback?(form: HTMLFormElement | null): void;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
}
export {};
//# sourceMappingURL=CustomFormElement.d.ts.map