///
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { DeployAppTab, IFilterOption, IFilterSetting, IScopeSearchSortSettings, ISearchOption, SortType } from "../../utils/interfaces.js";
import type { T9nMeta } from "@arcgis/lumina/controllers";
export abstract class SolutionsSearchSortToolbar extends LitElement {
/**
* Contains the translations for this component.
* All UI strings should be defined here.
*
* @internal
*/
protected _translations: {
chooseSortType: string;
filterBy: string;
mySolutions: string;
myOrgSolutions: string;
showFilters: string;
sortByRelevance: string;
sortByTitle: string;
sortByNew: string;
sortByDateDeployed: string;
sortByUpdated: string;
sortBySuggestedForYou: string;
search: {
solutions: string;
deployments: string;
};
} & T9nMeta<{
chooseSortType: string;
filterBy: string;
mySolutions: string;
myOrgSolutions: string;
showFilters: string;
sortByRelevance: string;
sortByTitle: string;
sortByNew: string;
sortByDateDeployed: string;
sortByUpdated: string;
sortBySuggestedForYou: string;
search: {
solutions: string;
deployments: string;
};
}>;
/**
* The default type to sort solutions by
*
* @default 'relevance'
*/
accessor defaultSortType: SortType;
/**
* Determines if the Owner section should be shown.
*
* @default false
*/
accessor isOrgSolutions: boolean;
/** The enviornment on which to perform search or sort */
accessor scope: DeployAppTab | undefined;
/**
* Changes the filter to show only solutions that the user owns or the solutions within the organization.
* This function is only available when the application is in the Deployments view.
*
* @param isMySolutions - Flag to show user's solution or organization's solutions.
*/
changeOwnerFilter(isMySolutions: boolean): void;
/**
* Filters the solutions by a text search phrase.
*
* @param searchTerm - the string lookup solutions by.
* @param emit - (Optional) Flag whether to emit. useful when you don't want to emit multiple times for example in clear filter.
* @param startTelemetryTimer - (Optional) Flag whether to start the telemetry debounce timer.
*/
changeSearchFilter(searchTerm: string, emit?: boolean, startTelemetryTimer?: boolean): void;
/**
* Change the user selected sort type
*
* @param sortType - the string to sort by. Valid values are 'relevance' | 'title' | 'new' | 'updated' | 'suggested' | 'created'.
* @param emit - when true the sortTypeChanged event will be emitted and a new search will be fired
* when false only the current settings will be updated to support url params
*/
sortChanged(sortType: SortType, emit: boolean): void;
/** The event that gets emitted after any filter option has changed. */
readonly searchChanged: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the sort type changes */
readonly sortTypeChanged: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the filter button is clicked in mobile */
readonly toggleFilter: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when navigating between tabs in the app */
readonly updateUrlParams: import("@arcgis/lumina").TargetedEvent;
readonly "@eventTypes": {
searchChanged: SolutionsSearchSortToolbar["searchChanged"]["detail"];
sortTypeChanged: SolutionsSearchSortToolbar["sortTypeChanged"]["detail"];
toggleFilter: SolutionsSearchSortToolbar["toggleFilter"]["detail"];
updateUrlParams: SolutionsSearchSortToolbar["updateUrlParams"]["detail"];
};
}