import { EventEmitter, h } from '../../stencil-public-runtime';
import { SceneTreeController } from '../scene-tree/lib/controller';
/**
 * @slot search-icon - A slot that replaces the component's default search icon.
 * @slot clear-icon - A slot that replaces the component's default clear icon.
 */
export declare class SceneTreeSearch {
    /**
     * Specifies the delay, in milliseconds, to emit `search` events after user
     * input.
     *
     * If this value is specified, searches will automatically occur after a
     * keystroke has occurred and the debounce threshold has elapsed.
     *
     * Defaults to `undefined`, and searches only occur on an `Enter` press
     * or a `blur` event.
     */
    debounce?: number;
    /**
     * If `true`, disables user interaction of the component.
     */
    disabled: boolean;
    /**
     * Placeholder text if `value` is empty.
     */
    placeholder?: string;
    /**
     * The scene tree controller
     */
    controller?: SceneTreeController;
    /**
     * The current text value of the component. Value is updated on user
     * interaction.
     */
    value: string;
    /**
     * An event that is emitted when a user has changed or cleared the search
     * term. The event may be delayed according to the current `debounce` value.
     */
    search: EventEmitter<string>;
    /**
     * An event that is emitted when a search has completed.
     */
    searchCompleted: EventEmitter<string>;
    private focused;
    private isSearching;
    private lastEmittedValue?;
    private inputEl?;
    private onStateChangeDisposable?;
    private searchDisposable?;
    /**
     * Gives focus to the component's internal text input.
     */
    setFocus(): Promise<void>;
    /**
     * @ignore
     */
    controllerChanged(controller: SceneTreeController): void;
    /**
     * @ignore
     */
    protected componentDidLoad(): void;
    /**
     * @ignore
     */
    protected disconnectedCallback(): void;
    /**
     * Clears the current search term and clears any debounced filters.
     */
    clear(): Promise<void>;
    /**
     * @ignore
     */
    protected render(): h.JSX.IntrinsicElements;
    private handleTextInput;
    private handleTextFocus;
    private handleTextBlur;
    private handleKeyPress;
    private handleClear;
    private handleDebounceChanged;
    private setupController;
    private emitCurrentValue;
}
