/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { internals } from '../../constants';
import { BaseComponent, IBaseComponent } from './base-component';
export interface IBaseFormComponent<T = string> extends IBaseComponent {
    value: T;
    disabled: boolean;
    readonly: boolean;
    name: string;
    readonly form: HTMLFormElement | null;
    readonly labels: NodeList;
    readonly [internals]: ElementInternals;
    formResetCallback(): void;
    formStateRestoreCallback(state: unknown, reason: 'restore' | 'autocomplete'): void;
    formDisabledCallback(isDisabled: boolean): void;
}
/**
 * Any form associated Custom HTML element.
 */
export declare abstract class BaseFormComponent<T = string> extends BaseComponent implements IBaseFormComponent<T> {
    static formAssociated: boolean;
    abstract value: T;
    abstract disabled: boolean;
    abstract readonly: boolean;
    abstract name: string;
    abstract get form(): HTMLFormElement | null;
    abstract get labels(): NodeList;
    abstract get [internals](): ElementInternals;
    abstract formResetCallback(): void;
    abstract formStateRestoreCallback(state: unknown, reason: 'restore' | 'autocomplete'): void;
    abstract formDisabledCallback(isDisabled: boolean): void;
}
