/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IBaseFieldAdapter } from './base-field-adapter';
import { FieldDensity, FieldLabelAlignment, FieldLabelPosition, FieldShape, FieldSupportTextInset, FieldTheme, FieldVariant } from './base-field-constants';
export interface IBaseFieldFoundation extends ICustomElementFoundation {
    labelPosition: string;
    labelAlignment: string;
    invalid: boolean;
    required: boolean;
    optional: boolean;
    disabled: boolean;
    permanentlyFloatLabel: boolean;
    variant: string;
    theme: string;
    shape: string;
    density: string;
    dense: boolean;
    popoverIcon: boolean;
    popoverExpanded: boolean;
    supportTextInset: string;
    click(): void;
    applyLabel(value: string | null): void;
    floatLabelWithoutAnimation(value: boolean): void;
}
export declare abstract class BaseFieldFoundation<T extends IBaseFieldAdapter> implements IBaseFieldFoundation {
    protected _adapter: T;
    protected _labelPosition: FieldLabelPosition;
    protected _labelAlignment: FieldLabelAlignment;
    protected _invalid: boolean;
    protected _required: boolean;
    protected _optional: boolean;
    protected _disabled: boolean;
    protected _variant: FieldVariant;
    protected _theme: FieldTheme;
    protected _shape: FieldShape;
    protected _density: FieldDensity;
    protected _dense: boolean;
    protected _popoverIcon: boolean;
    protected _popoverExpanded: boolean;
    protected _supportTextInset: FieldSupportTextInset;
    protected _permanentlyFloatLabel: boolean;
    protected get _hasValue(): boolean;
    protected get _hasPlaceholder(): boolean;
    constructor(_adapter: T);
    click(): void;
    applyLabel(value: string | null): void;
    floatLabelWithoutAnimation(value: boolean): void;
    protected _tryFloatLabel(force?: boolean): void;
    get labelPosition(): FieldLabelPosition;
    set labelPosition(value: FieldLabelPosition);
    get labelAlignment(): FieldLabelAlignment;
    set labelAlignment(value: FieldLabelAlignment);
    get invalid(): boolean;
    set invalid(value: boolean);
    get required(): boolean;
    set required(value: boolean);
    get optional(): boolean;
    set optional(value: boolean);
    get disabled(): boolean;
    set disabled(value: boolean);
    get permanentlyFloatLabel(): boolean;
    set permanentlyFloatLabel(value: boolean);
    get variant(): FieldVariant;
    set variant(value: FieldVariant);
    get theme(): FieldTheme;
    set theme(value: FieldTheme);
    get shape(): FieldShape;
    set shape(value: FieldShape);
    get density(): FieldDensity;
    set density(value: FieldDensity);
    get dense(): boolean;
    set dense(value: boolean);
    get popoverIcon(): boolean;
    set popoverIcon(value: boolean);
    get popoverExpanded(): boolean;
    set popoverExpanded(value: boolean);
    get supportTextInset(): FieldSupportTextInset;
    set supportTextInset(value: FieldSupportTextInset);
}
