/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent } from '../../core/base/base-component';
import { IWithLabelAwareness } from '../../core/mixins/label/with-label-aware';
import { IBaseFieldAdapter } from './base-field-adapter';
import { FieldDensity, FieldLabelAlignment, FieldLabelPosition, FieldShape, FieldSupportTextInset, FieldTheme, FieldVariant } from './base-field-constants';
import { BaseFieldFoundation } from './base-field-foundation';
export interface IBaseField extends IWithLabelAwareness {
    labelPosition: FieldLabelPosition;
    labelAlignment: FieldLabelAlignment;
    invalid: boolean;
    required: boolean;
    optional: boolean;
    disabled: boolean;
    floatLabel: boolean;
    variant: FieldVariant;
    theme: FieldTheme;
    shape: FieldShape;
    density: FieldDensity;
    dense: boolean;
    popoverIcon: boolean;
    supportTextInset: FieldSupportTextInset;
    floatLabelWithoutAnimation(value: boolean): void;
}
declare const BaseFieldClass: import("../..").AbstractConstructor<import("../../core/mixins/label/with-label-aware").WithLabelAwarenessContract> & typeof BaseComponent;
export declare abstract class BaseField<T extends BaseFieldFoundation<IBaseFieldAdapter>> extends BaseFieldClass implements IBaseField {
    static get observedAttributes(): string[];
    protected abstract _foundation: T;
    constructor();
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    labelClickedCallback(): void;
    labelChangedCallback(value: string | null): void;
    labelPosition: FieldLabelPosition;
    labelAlignment: FieldLabelAlignment;
    invalid: boolean;
    required: boolean;
    optional: boolean;
    disabled: boolean;
    floatLabel: boolean;
    variant: FieldVariant;
    theme: FieldTheme;
    shape: FieldShape;
    density: FieldDensity;
    dense: boolean;
    popoverIcon: boolean;
    supportTextInset: FieldSupportTextInset;
    floatLabelWithoutAnimation(value: boolean): void;
}
export {};
