/**
 * @license
 * Copyright 2017 JBoss Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { ElementRef, EventEmitter } from "@angular/core";
export declare abstract class DropDownOption {
    abstract isDivider(): boolean;
    abstract getName(): any;
    abstract getValue(): any;
    abstract isDisabled(): boolean;
}
export declare class DropDownOptionValue extends DropDownOption {
    name: string;
    value: any;
    disabled: boolean;
    constructor(name: string, value: any, disabled?: boolean);
    isDivider(): boolean;
    getName(): string;
    getValue(): any;
    isDisabled(): boolean;
}
export declare class DropDownOptionDivider extends DropDownOption {
    divider: true;
    isDivider(): boolean;
    getName(): void;
    getValue(): void;
    isDisabled(): boolean;
}
/**
  * Static instance for reusability
  */
export declare let DIVIDER: DropDownOption;
export declare class DropDownComponent {
    _open: boolean;
    id: string;
    classes: string;
    value: any;
    _options: DropDownOption[];
    noSelectionLabel: string;
    noOptionsLabel: string;
    filterItemCountThreshold: number;
    loading: boolean;
    loadingLabel: string;
    onValueChange: EventEmitter<any>;
    get options(): DropDownOption[];
    set options(value: DropDownOption[]);
    filter: ElementRef;
    criteria: string;
    filteredOptions: DropDownOption[];
    toggle(): void;
    open(): void;
    setOpen(state: boolean): void;
    close(): void;
    isOpen(): boolean;
    hasValue(): boolean;
    displayValue(): string;
    setValue(value: any): void;
    filterOptions(): void;
    hasOptions(): boolean;
    inputKeypress(event: KeyboardEvent): void;
    shouldShowFilter(): boolean;
}
