/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { SelectFoundation } from './select-foundation';
import { BaseSelectComponent } from '../core';
import { FieldDensityType, FieldFloatLabelType, FieldShapeType } from '../../field/field-constants';
import { IBaseSelectComponent } from '../core/base-select';
export interface ISelectComponent extends IBaseSelectComponent {
    density: FieldDensityType;
    floatLabelType: FieldFloatLabelType;
    shape: FieldShapeType;
    invalid: boolean;
    required: boolean;
    label: string;
    disabled: boolean;
    placeholder: string;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-select': ISelectComponent;
    }
    interface HTMLElementEventMap {
        'forge-select-scrolled-bottom': CustomEvent<void>;
        'change': CustomEvent<any>;
    }
}
/**
 * The custom element class behind the `<forge-select>` component.
 *
 * @tag forge-select
 */
export declare class SelectComponent extends BaseSelectComponent<SelectFoundation> implements ISelectComponent {
    static get observedAttributes(): string[];
    constructor();
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** Gets/sets the label text. */
    label: string;
    /** Gets/sets the disabled state. */
    disabled: boolean;
    /** Gets/sets the invalid state. */
    invalid: boolean;
    /** Gets/sets the required state which controls the visibility of the asterisk in the label. */
    required: boolean;
    /** Controls the density type. */
    density: FieldDensityType;
    /** Whether the label should always float, never float or float as the user types. */
    floatLabelType: FieldFloatLabelType;
    /** The shape type to use. */
    shape: FieldShapeType;
    /** Gets/sets the placeholder text. */
    placeholder: string;
}
