/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { IBaseSelectFoundation, ISelectOption, BaseSelectFoundation } from '../core';
import { ISelectAdapter } from './select-adapter';
export interface ISelectFoundation extends IBaseSelectFoundation {
    label: string;
    placeholder: string;
    syncFloatingLabelState(opts: {
        force?: boolean;
    }): void;
    setDisabled(value: boolean): void;
}
export declare class SelectFoundation extends BaseSelectFoundation<ISelectAdapter> implements ISelectFoundation {
    private _label;
    private _placeholder;
    private _permanentlyFloatLabel;
    private _mousedownListener;
    constructor(adapter: ISelectAdapter);
    initialize(): void;
    disconnect(): void;
    syncFloatingLabelState({ force }?: {
        force?: boolean;
    }): void;
    setDisabled(value: boolean): void;
    private _initializeLabel;
    protected _initializeValue(): void;
    private _initializeAccessibility;
    private _onMouseDown;
    protected _onClick(evt: MouseEvent): void;
    protected _openDropdown(): void;
    protected _closeDropdown(): void;
    protected _onDismiss(): void;
    protected _onDropdownScrollEnd(): void;
    /**
     * Handles selecting an item in the dropdown.
     * @param {ISelectOption} option The selected option.
     * @param {number} optionIndex The index of the selected option.
     */
    protected _onSelect(option: ISelectOption, optionIndex: number, closeDropdown?: boolean): Promise<boolean>;
    protected _reset(): void;
    private _tryFloatLabel;
    private _updateLabel;
    protected _applyValue(value: string | string[]): void;
    /** Gets/sets the label text. */
    get label(): string;
    set label(value: string);
    get placeholder(): string;
    set placeholder(value: string);
}
