/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { SelectFoundation } from './select-foundation';
import { BaseSelectComponent, IBaseSelectComponent } from '../core';
import { FieldDensity, FieldLabelPosition } from '../../field';
import { IWithBaseField } from '../../field/base/with-base-field';
export interface ISelectComponent extends IWithBaseField, IBaseSelectComponent {
    label: string;
    placeholder: string;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-select': ISelectComponent;
    }
    interface HTMLElementEventMap {
        'forge-select-scrolled-bottom': CustomEvent<void>;
        'change': CustomEvent<any>;
    }
}
declare const BaseClass: import("../..").AbstractConstructor<import("../../field/base/with-base-field").WithBaseFieldContract> & (abstract new () => BaseSelectComponent<SelectFoundation>);
/**
 * @tag forge-select
 *
 * @property {string} label - The label text.
 * @property {string} placeholder - The placeholder text.
 * @property {FieldLabelPosition} labelPosition - The position of the label relative to the input area.
 * @property {FieldLabelAlignment} labelAlignment - The alignment of the label relative to the input area.
 * @property {boolean} floatLabel - Whether an inset positioned label is floated to the top of the container.
 * @property {boolean} invalid - Whether the field is in an invalid state.
 * @property {boolean} required - Whether the field is required.
 * @property {boolean} optional - Whether the field is optional.
 * @property {boolean} disabled - Whether the field is disabled.
 * @property {FieldVariant} variant - The variant of the field.
 * @property {FieldTheme} theme - The theme of the field.
 * @property {FieldShape} shape - The border radius of the field's corners.
 * @property {FieldDensity} density - The density of the field.
 * @property {boolean} dense - Whether the field is at the "extra-small" density level.
 * @property {FieldSupportTextInset} supportTextInset - Whether the field's support text is inset from either side.
 */
export declare class SelectComponent extends BaseClass implements ISelectComponent {
    static get observedAttributes(): string[];
    constructor();
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    label: string;
    placeholder: string;
    get floatLabel(): boolean;
    set floatLabel(value: boolean);
    get density(): FieldDensity;
    set density(value: FieldDensity);
    get dense(): boolean;
    set dense(value: boolean);
    get disabled(): boolean;
    set disabled(value: boolean);
    get labelPosition(): FieldLabelPosition;
    set labelPosition(value: FieldLabelPosition);
}
export {};
