import { EventEmitter } from "../../stencil-public-runtime";
import { InputAutocompleteTypes } from "../x-input/component";
export declare class XSelect {
    /**
     * Element ID for internal reference
     */
    private readonly inputId;
    /**
     * Element cleanup function
     */
    private cleanup;
    /**
     * Input element
     */
    private input;
    /**
     * Element ready to validate data
     */
    private isReady;
    /**
     * Element input label text
     */
    label?: string;
    /**
     * Element input name for forms keys
     */
    name?: string;
    /**
     * Element input placeholder text
     */
    placeholder?: string;
    /**
     * Element input information block
     */
    info?: string;
    /**
     * Element input required for forms validations
     */
    required: boolean;
    /**
     * Element show loading and block for edit
     */
    loading: boolean;
    /**
     * Element autofocus on render
     */
    autofocus: boolean;
    /**
     * Element multiple selection
     */
    multiple: boolean;
    /**
     * Element rows size on multiple selection
     */
    size: number;
    /**
     * Element input width
     */
    width?: string;
    /**
     * Element input value of the control can be automatically completed by the browser
     */
    autocomplete: InputAutocompleteTypes;
    /**
     * Element input value
     */
    value?: string | Array<string> | null;
    /**
     * Form input validation state
     */
    isValid: boolean;
    /**
     * input focus state
     */
    isFocused: boolean;
    /**
     * Input loading state
     */
    isLoading: boolean;
    /**
     * Input diabled state
     */
    isDisabled: boolean;
    /**
     * Input is filtered by suguestion
     */
    isFiltered: boolean;
    /**
     * Input value for custom options
     */
    computedValue: Array<string>;
    /**
     * Input text for custom options
     */
    computedText: Array<string>;
    /**
     * Count of filtered items
     */
    filteredCount: number;
    /**
     * Count of all options items
     */
    filteredTotal: number;
    /**
     * On validate input event
     */
    onValidateInputEvent: EventEmitter<ElementInternals | HTMLSelectElement>;
    /**
     * Element reference
     */
    el: HTMLElement;
    /**
     * Element internal
     */
    internals: ElementInternals;
    /**
     * Watch changes in value property
     */
    watchValue(newValue: string | null): void;
    /**
     * on child option element is triggered the selection
     */
    handleOptionSelected(ev: CustomEvent): void;
    /**
     * Element event on slot make changes
     */
    handleSlotChange(): void;
    /**
     * Set the actual value to internals
     */
    setFormValue(): void;
    /**
     * This is called on component will load
     */
    componentWillLoad(): void;
    /**
     * This is called on component did load
     */
    componentDidLoad(): void;
    /**
     * This is called on component did update the element space
     */
    computePositionCustomSelect(): void;
    /**
     * This is called when the 'disabled' attribute of the element or or an ancestor <fieldset> is updated
     *
     * @param disabled
     */
    formDisabledCallback(disabled: boolean): void;
    /**
     * This is called when the parent/owner form is reset
     */
    formResetCallback(): void;
    /**
     * This is called when the input is validated
     */
    formValidateCallback(dispatchValidation?: boolean): void;
    /**
     * Set element value by event
     *
     * @param event
     */
    onInput(event: any): void;
    /**
     * This called on input field is unfocused
     */
    onBlurInput(): void;
    /**
     * This called on input field is focused
     */
    onFocusInput(): void;
    /**
     * This called on search input have results
     */
    onFilterInput(ev: InputEvent): void;
    /**
     * Return validation of showing the input label
     *
     * @returns
     */
    showLabel(): string | boolean;
    /**
     * Compute the placeholder value
     *
     * @returns
     */
    placeholderValue(): string;
    /**
     * Focus the select input
     */
    focusSelect(): void;
    /**
     * Select the option element by value
     */
    selectOptionByValue(value: string | Array<string>): void;
    /**
     * Check if the select use not native options
     */
    isAdvancedSelect(): boolean;
    /**
     * Render component
     */
    render(): any;
}
