/**
* A model that represents a paginable response from a list endpoint.
* @module Paginable
* @version 4.0.1
*/
export default class Paginable {
    /**
    * Constructs a <code>Paginable</code> from a plain Javascript object, optionally creating a new instance.
    * Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
    * @param {Object} metadata The plain Javascript object bearing properties of interest.
    * @param {module:Paginable} obj Optional instance to populate.
    * @return {module:Paginable} The populated <code>Paginable</code> instance.
    */
    static constructFromObject(metadata: any, obj: any): any;
    /**
    * Get the first page of the set, if any
    * @return {Promise} a {@link https://www.promisejs.org/|Promise}, resolves with another Paginable
    *                   or rejects with error message if any issue (link not available, ...)
    */
    getFirstPage(): Promise<any>;
    /**
    * Get the previous page of the set, if any
    * @return {Promise} a {@link https://www.promisejs.org/|Promise}, resolves with another Paginable
    *                   or rejects with error message if any issue (link not available, ...)
    */
    getPrevPage(): Promise<any>;
    /**
    * Get the next page of the set, if any
    * @return {Promise} a {@link https://www.promisejs.org/|Promise}, resolves with another Paginable
    *                   or rejects with error message if any issue (link not available, ...)
    */
    getNextPage(): Promise<any>;
    /**
    * Get the last page of the set, if any
    * @return {Promise} a {@link https://www.promisejs.org/|Promise}, resolves with another Paginable
    *                   or rejects with error message if any issue (link not available, ...)
    */
    getLastPage(): Promise<any>;
    /**
    * Get the current page number
    * @return {Number} the current page number, starts at 0
    */
    currentPage(): number;
    /**
    * Get the total number of pages
    * @return {Number} the total number of pages available
    */
    countPages(): number;
    /**
    * Check if current page is first page
    * @return {Boolean} True if current page is 0, false otherwise
    */
    isFirstPage(): boolean;
    /**
    * Check if current page is last page
    * @return {Boolean} True if current page is countPages()-1, false otherwise
    */
    isLastPage(): boolean;
    populatePaginationMetadata(apiClient: any, page: any, resultsPerPage: any): void;
    apiClient: ApiClient;
    page: number;
    resultsPerPage: number;
    _getLink(path: any): Promise<any>;
    /**
    * The link to first page, if any
    * @type {String}
    * @memberOf Paginable
    */
    linkFirst: string;
    /**
    * The link to previous page, if any
    * @type {String}
    * @memberOf Paginable
    */
    linkPrev: string;
    /**
    * The link to next page, if any
    * @type {String}
    * @memberOf Paginable
    */
    linkNext: string;
    /**
    * The link to last page, if any
    * @type {String}
    * @memberOf Paginable
    */
    linkLast: string;
    /**
    * Number of total results available
    * @type {Number}
    * @memberOf Paginable
    */
    resultsTotal: number;
}
import { ApiClient } from "./ApiClient";
