/// <reference types="react" />
import type { AlphaFiltersProps } from '../AlphaFilters';
import type { AlphaTabsProps } from '../AlphaTabs';
import type { IndexFiltersPrimaryAction, IndexFiltersCancelAction, SortButtonChoice } from './types';
import { IndexFiltersMode } from './types';
export interface IndexFiltersProps extends Omit<AlphaFiltersProps, 'focused' | 'children' | 'disableQueryField' | 'disableFilters'>, Pick<AlphaTabsProps, 'tabs' | 'onSelect' | 'selected'> {
    /** The available sorting choices. If not present, the sort button will not show */
    sortOptions?: SortButtonChoice[];
    /** The currently selected sort choice. Required if using sorting */
    sortSelected?: string[];
    /** Optional callback invoked when a merchant changes the sort order. Required if using sorting */
    onSort?: (value: string[]) => void;
    /** Optional callback when using saved views and changing the sort key */
    onSortKeyChange?: (value: string) => void;
    /** Optional callback when using saved views and changing the sort direction */
    onSortDirectionChange?: (value: string) => void;
    /** The primary action to display  */
    primaryAction?: IndexFiltersPrimaryAction;
    /** The cancel action to display */
    cancelAction: IndexFiltersCancelAction;
    /** Optional callback invoked when a merchant begins to edit a view */
    onEditStart?: () => void;
    /** The current mode of the IndexFilters component. Used to determine which view to show */
    mode: IndexFiltersMode;
    /** Callback to set the mode of the IndexFilters component */
    setMode: (mode: IndexFiltersMode) => void;
    /** Will disable all the elements within the IndexFilters component */
    disabled?: boolean;
    /** Will disable just the query field */
    disableQueryField?: boolean;
    /** If true, the sticky interaction on smaller devices will be disabled */
    disableStickyMode?: boolean;
    /** If the component should go flush to the top of the page when sticking */
    isFlushWhenSticky?: boolean;
    /** Whether the index supports creating new views */
    canCreateNewView?: boolean;
    /** Callback invoked when a merchant creates a new view */
    onCreateNewView?: (name: string) => Promise<boolean>;
    /** Optional override to the default aria-label for the button that toggles the filtering mode */
    filteringAccessibilityLabel?: string;
    /** Optional override to the default Tooltip message for the button that toggles the filtering mode */
    filteringAccessibilityTooltip?: string;
}
export declare function IndexFilters({ tabs, selected, onSelect, onSort, onSortKeyChange, onSortDirectionChange, sortOptions, sortSelected, queryValue, queryPlaceholder, primaryAction, cancelAction, filters, appliedFilters, onClearAll, onQueryChange, onQueryFocus, onQueryClear, onEditStart, disabled, disableQueryField, hideFilters, loading, mode, setMode, disableStickyMode, isFlushWhenSticky, canCreateNewView, onCreateNewView, filteringAccessibilityLabel, filteringAccessibilityTooltip, hideQueryField, }: IndexFiltersProps): JSX.Element;
//# sourceMappingURL=IndexFilters.d.ts.map