/// <reference path="../../index.d.ts" />
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { IFilterOption, ISearchOption } from "../../utils/interfaces.js";
import type { T9nMeta } from "@arcgis/lumina/controllers";

export abstract class SolutionsDeployedFilterPanel extends LitElement {
  /** @internal */
  protected _translations: {
      mySolutions: string;
      myOrgSolutions: string;
      owner: string;
      search: { solutions: string; };
  } & T9nMeta<{
      mySolutions: string;
      myOrgSolutions: string;
      owner: string;
      search: { solutions: string; };
  }>;
  /**
   * Determines if the Owner section should be shown.
   *
   * @default false
   */
  accessor isAllSolutions: boolean;
  /**
   * Detemines if the layout should be mobile view. False means it is desktop view.
   *
   * @default false
   */
  accessor isMobile: boolean;
  /**
   * Flag to store if logged in user is an admin to this ArcGIS Enterprise.
   *
   * @default false
   */
  accessor isOrgAdmin: boolean;
  /**
   * 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 My Solutions view.
   *
   * @param isMySolutions - Flag to show user's solution or organization's solutions.
   * @param emit - (Optional) Flag whether to emit. useful when you don't want to emit multiple times for example in clear filter.
   */
  changeOwnerFilter(isMySolutions: boolean, emit?: 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.
   */
  changeSearchFilter(searchTerm: string, emit?: boolean): void;
  /** Clears all the filters include search, industry and owner. */
  clearFilters(): void;
  /** The event that gets emitted after any filter option has changed. */
  readonly applyFilter: import("@arcgis/lumina").TargetedEvent<this, IFilterOption[] | IFilterOption | ISearchOption | null>;
  readonly "@eventTypes": {
    applyFilter: SolutionsDeployedFilterPanel["applyFilter"]["detail"];
  };
}