import { Action } from '../collapsible-section/action';
import { ActionPosition, ActionScrollBehavior } from '../picker/actions.types';
import { ListItem } from '../list-item/list-item.types';
import { Searcher } from '../picker/searcher.types';
import { PickerValue } from './value.types';
/**
 * @exampleComponent limel-example-picker-basic
 * @exampleComponent limel-example-picker-multiple
 * @exampleComponent limel-example-picker-icons
 * @exampleComponent limel-example-picker-pictures
 * @exampleComponent limel-example-picker-value-as-object
 * @exampleComponent limel-example-picker-value-as-object-with-actions
 * @exampleComponent limel-example-picker-empty-suggestions
 * @exampleComponent limel-example-picker-leading-icon
 * @exampleComponent limel-example-picker-static-actions
 * @exampleComponent limel-example-picker-composite
 */
export declare class Picker {
    /**
     * True if the picker should be disabled
     */
    disabled: boolean;
    /**
     * Set to `true` to disable adding and removing items,
     * but allow interaction with existing items.
     */
    readonly: boolean;
    /**
     * Text to display for the input field of the picker
     */
    label: string;
    /**
     * Search label to display in the input field when searching
     */
    searchLabel: string;
    /**
     * Optional helper text to display below the input field when it has focus
     */
    helperText: string;
    /**
     * Leading icon to show to the far left in the text field
     */
    leadingIcon: string;
    /**
     * A message to display when the search returned an empty result
     */
    emptyResultMessage: string;
    /**
     * True if the control requires a value
     */
    required: boolean;
    /**
     * Set to `true` to indicate that the current value of the input field is
     * invalid.
     */
    invalid: boolean;
    /**
     * Currently selected value or values. Where the value can be an object.
     */
    value: ListItem<PickerValue> | Array<ListItem<PickerValue>>;
    /**
     * A search function that takes a search-string as an argument,
     * and returns a promise that will eventually be resolved with
     * an array of `ListItem`:s.
     *
     * See the docs for the type `Searcher` for type information on
     * the searcher function itself.
     */
    searcher?: Searcher;
    /**
     * Only used if no `searcher` is provided. The picker will then use a
     * default search function that filters the `allItems` based on the
     * `text` and `secondaryText` properties of the items.
     * This way, custom search functions are typically only needed when the
     * search is done on the server.
     * For performance reasons, the default searcher will never return more
     * than 20 items, but if there are more than 20 items, the rest can be
     * found by typing more characters in the search field.
     */
    allItems?: Array<ListItem<PickerValue>>;
    /**
     * True if multiple values are allowed
     */
    multiple: boolean;
    /**
     * Sets delimiters between chips. Works only when `multiple` is `true`.
     */
    delimiter: string;
    /**
     * Static actions that can be clicked by the user.
     */
    actions: Array<ListItem<Action>>;
    /**
     * Position of the custom static actions in the picker's results dropdown.
     * Can be set to `'top'` or `'bottom'`.
     */
    actionPosition: ActionPosition;
    /**
     * Scroll behavior of the custom static actions, when user scrolls
     * in the picker's results dropdown. Can be set to `'scroll'` which means
     * the action items will scroll together with the list, or `'sticky'` which
     * retains their position at the top or bottom of the drop down while
     * scrolling.
     */
    actionScrollBehavior: ActionScrollBehavior;
    /**
     * Whether badge icons should be used in the result list or not
     */
    badgeIcons: boolean;
    /**
     * Fired when a new value has been selected from the picker
     */
    private change;
    /**
     * Fired when clicking on a selected value
     */
    private interact;
    /**
     * Emitted when the user selects an action.
     */
    private action;
    private items;
    private textValue;
    private loading;
    private chips;
    private host;
    private chipSetEditMode;
    private debouncedSearch;
    private chipSet;
    private portalId;
    constructor();
    componentWillLoad(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    protected onDisabledChange(): void;
    private updateTabIndex;
    componentWillUpdate(): Promise<void>;
    render(): any[];
    protected onChangeValue(): void;
    private renderDelimiter;
    private getValueId;
    private createChips;
    private createChip;
    /**
     * Renders the dropdown with the items to pick from, or a spinner if the picker
     * is waiting for items to be received
     *
     * @returns picker dropdown
     */
    private renderDropdown;
    private getActionContent;
    private removeUnusedPropertiesOnAction;
    private shouldShowDropDownContent;
    private getDropdownContent;
    /**
     * Returns true if the picker is "full"
     * The picker is considered to be full if it has a value and only one is allowed
     *
     * @returns true if the picker is full
     */
    private isFull;
    private renderSpinner;
    private renderEmptyMessage;
    private renderListResult;
    private onListKeyDown;
    private renderPortal;
    /**
     * Check if a descendant still has focus. If not, reset text value and search result.
     */
    private handleStopEditAndBlur;
    /**
     * Input handler for the input field
     *
     * @param event - event
     */
    private handleTextInput;
    private search;
    private defaultSearcher;
    /**
     * Change handler for the list
     *
     * @param event - event
     */
    private handleListChange;
    /**
     * Change handler for the list
     *
     * @param event - event
     */
    private handleActionListChange;
    /**
     * Focus handler for the chip set
     * Prevent focus if the picker has a value and does not support multiple values
     */
    private handleInputFieldFocus;
    private handleChange;
    private handleInteract;
    /**
     * Key handler for the input field
     * Will change focus to the first/last item in the dropdown list to enable selection with the keyboard
     *
     * @param event - event
     */
    private handleInputKeyDown;
    /**
     * Key handler for the dropdown
     *
     * @param event - event
     */
    private handleDropdownKeyDown;
    private handleSearchResult;
    private handleCloseMenu;
    private clearInputField;
}
//# sourceMappingURL=picker.d.ts.map