import { type SearchStatus, type Sort, type SortState, type TabManager, type TabManagerState } from '@coveo/headless';
import { LitElement } from 'lit';
import type { InitializableComponent } from '../../../decorators/types';
import type { Bindings } from '../atomic-search-interface/atomic-search-interface';
/**
 * The `atomic-sort-dropdown` component renders a dropdown that the end user can interact with to select the criteria to use when sorting query results.
 *
 * @slot default - The `atomic-sort-expression` of the dropdown are slotted in.
 *
 * @part label - The "Sort by" label of the `<select>` element.
 * @part select-parent - The `<select>` element parent.
 * @part select - The `<select>` element of the dropdown list.
 * @part select-separator - The element separating the select from the icon.
 * @part placeholder - The dropdown placeholder for while the search interface is initializing.
 */
export declare class AtomicSortDropdown extends LitElement implements InitializableComponent<Bindings> {
    bindings: Bindings;
    private readonly dropdownId;
    sort: Sort;
    sortState: SortState;
    searchStatus: SearchStatus;
    private searchStatusState;
    tabManager: TabManager;
    tabManagerState: TabManagerState;
    error: Error;
    initialize(): void;
    private buildOptions;
    private get options();
    private select;
    onTabManagerStateChange: () => void;
    private resetSortIfInvalidForCurrentTab;
    private isSortValid;
    private renderSortLabelTemplate;
    private renderSortSelectTemplate;
    render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-sort-dropdown': AtomicSortDropdown;
    }
}
