import { EventEmitter } from '../../stencil-public-runtime';
export declare class BsPagination {
  /**
   * optional, size of the pagination items
   */
  size: 'sm' | 'lg';
  /**
   * change alignment of pagination
   */
  align: 'left' | 'center' | 'right';
  /**
   * a descriptive label to reflect the purpose of the pagination
   */
  label: string;
  /**
   * turn off controlled to handle display of page items manually
   */
  controlled: boolean;
  /**
   * set page to override the current page
   */
  page: number;
  /**
   * set page count so pagination knows how to display it's items
   */
  pageCount: number;
  /**
   * if there are more than maxVisiblePages, the pagination will show clickable ellipsis when needed to hide them
   */
  maxVisiblePages: number;
  /**
   * stores the current page
   */
  currentPage: number;
  /**
   * called when the page changes
   */
  pagechanged: EventEmitter<number>;
  /**
   * helper method to add size to each page item in pagination
   */
  addSizeToPageItems(slot: any): void;
  /**
   * an exposed method to manually set the page
   * @param pageNumber
   */
  setPageTo(pageNumber: number): Promise<void>;
  /**
   * renders the pagination component
   */
  render(): any;
  /**
   * handles controlled pagination, where the component decides which page items to show
   * TODO: write some tests for this...
   */
  private renderPageItems;
  private renderFirstPageItem;
  private renderPreviousPageItem;
  /**
   * when user has navigated beyond maxVisiblePages into the pagination, need to show an ellipsis to hide previous pages
   * when user clicks on those ellipsis it will skip them backwards
   */
  private renderSkipBackItem;
  /**
   * when user has navigated beyond maxVisiblePages into the pagination, need to show an ellipsis to hide next pages
   * when user clicks on those ellipsis it will skip them forwards
   */
  private renderSkipForwardItem;
  private renderNextPageItem;
  private renderLastPageItem;
}
