import { EventEmitter } from '../../stencil-public-runtime';
import { HistoryItem, HistoryItemSelection } from './user-dashboard-list-item';
export declare type rowVariant = 'odd' | 'even';
export declare class GdUserDashboardListItem {
  /**
   * the history item to render
   */
  item: HistoryItem;
  /**
   * if history item url is a valid url, clicking on it will immediately navigate to that url
   * if set to false, the application will need to use the labelClick event to handle navigation
   */
  followUrl: boolean;
  /**
   * whether the item should be selectable (have a checkbox)
   */
  selectable: boolean;
  /**
   * whether the item should be selected
   */
  selected: boolean;
  /**
   * if item should show who shared it
   */
  showSharedBy: boolean;
  /**
   * if item should show edit button
   */
  allowEdit: boolean;
  /**
   * if item should show favorite button
   */
  allowFavorite: boolean;
  /**
   * if item should show delete button
   */
  allowDelete: boolean;
  /**
   * Is item odd or even entry in a list of items. Used to set alternating background colors for lists
   */
  alternateRow: rowVariant;
  /**
   * the application can use the labelClick handler to customize user dashboard item clicks
   * ex. if application stores JSON in history item URL field that represents a dialog to display instead of a page
   */
  labelClick: EventEmitter<HistoryItem>;
  /**
   * used by the application to save changes that have been made to the history item
   */
  updateItem: EventEmitter<HistoryItem>;
  /**
   * used by the application to delete the history item
   */
  deleteItem: EventEmitter<HistoryItem>;
  /**
   * used by the dashboard to handle editing a history item
   */
  editItem: EventEmitter<HistoryItem>;
  /**
   * used by the dashboard to handle favoriting a history item
   */
  favoriteItem: EventEmitter<HistoryItem>;
  /**
   * notifies the dashboard that this item has been selected
   */
  itemSelected: EventEmitter<HistoryItemSelection>;
  /**
   * an event that is fired when the user clicks a tag to filter list
   */
  filterChanged: EventEmitter<string>;
  /**
   * renders the user dashboard list item
   */
  render(): any;
  /**
   * if needed, will block the link click and use the labelClick event instead. labelClick is used if:
   *  - the followUrl prop is false
   *
   * @param event
   */
  private handleLabelClick;
  filterByTag(tag: string): void;
  /**
   * updates visual favorite state and emits toggle event
   */
  private handleToggleFavorite;
  /**
   * emits delete event after user confirmation
   */
  private handleDelete;
  private handleTagsChange;
  private handleItemSelect;
}
