import { EventEmitter } from '../../stencil-public-runtime';
/**
 * Pagination component which is used to divide large amounts of content into
 * smaller, easier to understand chunks. It is used when there is a finite list
 * of results on an individual page, and is placed at the bottom of the page
 * under the content.
 */
export declare class BsPagination {
  /** Whether to show the "first page"/"last page" caret buttons. */
  showFirstLastButtons: boolean;
  /** Text that will be shown next to the "previous page" caret button. */
  prevPageText?: string;
  /** Text that will be shown next to the "first page" caret button. */
  firstPageText?: string;
  /** Text that will be shown next to the "next page" caret button. */
  nextPageText?: string;
  /** Text that will be shown next to the "last page" caret button. */
  lastPageText?: string;
  /** Whether the pagination should be fixed to the bottom of the screen. */
  fixed: boolean;
  /** Which variant of pagination to show. */
  variant: 'base' | 'group' | 'results';
  /**
   * The current active selection (page, results, etc.). If nothing provided,
   * will select the first page / results group by default.
   */
  selection?: number;
  /**
   * What to display between the navigation carets. A value of `"numbers"` will
   * show a list of page numbers and `"text"` will show which page is currently
   * being shown. Only applicable for `variant="base"`.
   */
  centerDisplay: 'numbers' | 'text';
  /**
   * Character to show when there's a break in page numbers. Only applicable for
   * `variant="base" centerDisplay="numbers"`.
   */
  breakText: string;
  /**
   * How many pages to show before using the `break-text` character to break up
   * the pages. Should be an odd number to function properly. Only applicable
   * for `variant="base" centerDisplay="numbers"`.
   */
  pageRange: number;
  /**
   * Total number of pages. Only applicable for `variant="base".
   */
  pageCount?: number;
  /**
   * Text to display between the navigation carets. Only applicable for
   * `variant="base" center-display="text"` and `variant="group"`. Defaults to
   * `"Page"` for `variant="base"` and `"Results"` for `variant="group"`.
   */
  centerLabel?: string;
  /** How many items per group. Only applicable for `variant="group"`. */
  itemsPerGroup: number;
  /** How many total items there are. Only applicable for `variant="group"`. */
  itemsCount?: number;
  /**
   * Comma-separated list of the desired "Results Per Page" increment buttons.
   * Only applicable for `variant="results"`.
   */
  resultsIncrements?: string;
  /** Internal mirror of the `selection` prop to internally control paging. */
  selectionState: number;
  /** Emits the page or results number that was selected. */
  selchange: EventEmitter<number>;
  private _actualPageCount;
  componentDidLoad(): void;
  handleSelectionPropChange(newVal: number): void;
  handleSelectionStateChange(newVal: number, oldVal: number): void;
  get actualPageCount(): number;
  /**
   * Reset actual page count when any of these props changes so it can be
   * re-calculated on next `get`.
   */
  handlePageCountChange(): void;
  /**
   * Handles special variant cases such as `centerDisplay="text"` having the
   * same style as `variant="group"`.
   */
  getVariant(): string;
  handleFirstNav(): void;
  getFirstPageButton(): any;
  handlePrevNav(): void;
  getPrevPageButton(): any;
  handleLastNav(): void;
  getLastPageButton(): any;
  handleNextNav(): void;
  getNextPageButton(): any;
  determinePageNumberRange(): {
    left: number;
    right: number;
  };
  handleSelection(selection: number): void;
  getPageNumbersDisplay(): any[];
  getPageTextDisplay(): string;
  getGroupTextDisplay(): string;
  getResultsDisplay(): any[];
  render(): any;
}
