import type { Variant } from "../../lib/constants";
import type { JSX } from "../../stencil-public-runtime";
import { ApiVersion } from "@what3words/api";
import type { AutosuggestOption, CustomOption, SuggestionsPayload } from "./domain";
/**
 * @slot { HTMLInputElement } - Optional input to override the default slot content
 */
export declare class What3wordsAutosuggest {
    private el;
    callback: string;
    api_key: string;
    headers: string;
    base_url: string;
    api_version: ApiVersion;
    name: string;
    initial_value: string;
    variant: Variant;
    typeahead_delay: number;
    invalid_address_error_message: string | null;
    strict: boolean;
    language?: string;
    autosuggest_focus: string;
    n_focus_results?: number;
    clip_to_country: string;
    clip_to_bounding_box: string;
    clip_to_circle: string;
    clip_to_polygon: string;
    return_coordinates: boolean;
    options: CustomOption[];
    private rawValue;
    private value;
    private input;
    private latInput;
    private lngInput;
    private suggestions;
    private selectedSuggestion;
    private showSuggestions;
    private hasFocus;
    private latitude;
    private longitude;
    private apiRequestTimeout?;
    private loading;
    private hoverIndex;
    private error;
    private errorTimeout?;
    private clients;
    private value_changed;
    private value_valid;
    private value_invalid;
    private selected_suggestion;
    private suggestions_changed;
    private suggestions_not_found;
    private coordinates_changed;
    private selected_custom_option;
    private deselected_suggestion;
    private __hover;
    private __focus;
    private __blur;
    private __error;
    /**
     * Watches for changes to the api_key property
     * @param key The api key
     */
    setApiKey(key: string): void;
    /**
     * Watches for changes to the base_url property
     * @param base_url The base url
     */
    setBaseUrl(host: string): void;
    /**
     * Watches for changes to the api_version property
     * @param apiVersion The version
     */
    setApiVersion(api_version: ApiVersion): void;
    /**
     * Watches for changes to the headers property
     * @param value The headers value
     */
    setHeaders(value: string): void;
    setCustomOptions(options: {
        value: string;
        id: string;
    }[]): void;
    private getComponentHeaders;
    private getRequestOptions;
    /**
     * Gets/sets the input element
     * @param { HTMLInputElement } input
     */
    private setInputElement;
    /** @returns { HTMLInputElement | null } */
    private getInputElement;
    /**
     * Sets the input value
     * @param { string } value
     */
    private setInputValue;
    /**
     * Gets/sets the value state for the input element
     * @param { string } value The value to set
     */
    private setValue;
    /** @returns { string } */
    getValue(): string;
    /**
     * Gets/sets the raw input search value
     * @param { string } rawValue The value to set
     */
    private setRawValue;
    /**
     * @returns { string }
     */
    getRawValue(): string;
    /**
     * Get/set the autosuggestions state value
     * @param { AutosuggestOption[] } suggestions The suggestions to set
     */
    private setSuggestions;
    /** @return { AutosuggestOption[] } */
    getSuggestions(): AutosuggestOption[];
    /**
     * Get/set the selected suggestion state value
     * @param { AutosuggestOption | null } selectedSuggestion The suggestions to set
     */
    private setSelectedSuggestion;
    /** @return { AutosuggestOption | null } */
    getSelectedSuggestion(): AutosuggestOption | null;
    /**
     * Gets/sets the loading state value
     * @param { boolean } loading The state to set
     */
    private setLoading;
    /** @return { boolean } */
    getLoading(): boolean;
    /**
     * Gets/sets the hasFocus state value
     * @param { boolean } hasFocus The state to set
     */
    private setHasFocus;
    /** @return { boolean } */
    getHasFocus(): boolean;
    /**
     * Gets/sets the showSuggestions state value
     * @param { boolean } showSuggestions The state to set
     */
    private setShowSuggestions;
    /** @return { boolean } */
    getShowSuggestions(): boolean;
    /**
     * Gets/sets the latitude state value
     * @param { number | null } lat The latitude value to set
     */
    private setLat;
    /** @returns { number | null } */
    getLat(): number | null;
    /**
     * Gets/sets the longitude value
     * @param { number | null } lng The longitude value to set
     */
    private setLng;
    /** @returns { number | null } */
    getLng(): number | null;
    /**
     * Gets/sets the latitude input state value
     * @param { HTMLInputElement } lat The latitude input value to set
     */
    private setLatInput;
    /** @returns { HTMLInputElement | null } */
    getLatInput(): HTMLInputElement | null;
    /**
     * Gets/sets the longitude input state value
     * @param { HTMLInputElement } lng The longitude input value to set
     */
    private setLngInput;
    /** @returns { HTMLInputElement | null } */
    getLngInput(): HTMLInputElement | null;
    /**
     * Gets/sets the hover index value
     * @param { number } hoverIndex The hover index value to set
     */
    private setHoverIndex;
    /** @returns { number } */
    getHoverIndex(): number;
    /**
     * Gets/sets the hover index value
     * @param { Error | null } error The hover index value to set
     */
    private setError;
    /** @returns { Error | null } */
    getError(): Error | null;
    /**
     * Gets/sets the hover index value
     * @param { NodeJS.Timeout } errorTimeout The hover index value to set
     */
    private setErrorTimeout;
    /** @returns { NodeJS.Timeout | undefined } */
    getErrorTimeout(): NodeJS.Timeout | undefined;
    /**
     * Emit an error and pass
     * @param {Error} error
     */
    private emitError;
    /**
     * Emits the no suggestions found error
     */
    private emitNoSuggestionsFoundError;
    /**
     * Emits the invalid three word address error
     */
    private emitInvalidAddressError;
    /**
     * Emits the could not retrieve co-ordinates error
     */
    private emitFatalError;
    private clearErrorMessage;
    /**
     * Asynchronously retrieves autosuggestion results for a given search string and sets the results against the
     * component state. This method is idempotent and has a timeout delay to throttle requests, waiting for the user to
     * stop typing.
     * @param value The search string to retrieve autosuggestions for.
     */
    private getAutosuggestions;
    private onValueChanged;
    private onValueValid;
    private onValueInvalid;
    private onSuggestionsChanged;
    private onSuggestionsNotFound;
    private onSelectedSuggestion;
    private _onSelectedCustomOption;
    private _onCoordinatesChanged;
    private _onHover;
    private _onFocus;
    private _onBlur;
    private _onError;
    private onInput;
    private onPaste;
    private onBlur;
    private onFocus;
    private onKeyUp;
    private onClick;
    private onCustomClick;
    private onMouseOver;
    private onMouseOut;
    connectedCallback(): void;
    disconnectedCallback(): void;
    componentWillLoad(): Promise<CustomEvent<SuggestionsPayload> | undefined>;
    render(): JSX.Element;
}
