/**
 * --------------------------------------------------------------------------
 * NJ : abstract-form-base-input.ts
 * --------------------------------------------------------------------------
 */
import AbstractFormBase from './abstract-form-base';
export default abstract class AbstractFormBaseInput extends AbstractFormBase {
    protected static readonly CLASS_NAME: {
        njFormGroup: string;
        njLabel: string;
        njLabelStatic: string;
        njLabelPlaceholder: string;
        njLabelFloating: string;
        hasDanger: string;
        isFilled: string;
        isFocused: string;
        inputGroup: string;
    };
    protected static readonly INPUT_SELECTOR: {
        njFormGroup: string;
        njLabelWildcard: string;
    };
    protected static readonly DEFAULT_OPTIONS: {
        validate: boolean;
        njFormGroup: {
            template: string;
            templateClass: string;
        };
        label: {
            required: boolean;
            selectors: string[];
            className: string;
        };
        requiredClasses: any[];
        convertInputSizeVariations: boolean;
    };
    private static readonly FORM_CONTROL_SIZE_MARKERS;
    constructor(component: any, element: HTMLElement, options?: {}, properties?: {});
    dispose(): void;
    addFocusListener(): void;
    addChangeListener(): void;
    addHasDanger(): void;
    removeHasDanger(): void;
    isEmpty(): boolean;
    resolveNJFormGroup(): Element | null;
    outerElement(): Element;
    resolveNJLabel(): void;
    findLabel(raiseError?: boolean): null | NodeListOf<Element>;
    resolveNJFormGroupSizing(): void;
}
