import { LitElement } from 'lit';
/**
* @htmlElement ``
*
* A Web Component that provides a pagination UI element.
*
* @example
* The pagination element's {@link page | `page`} attribute/property can be
* initialized via HTML or JavaScript. It will default to 1 if no value is
* provided:
* ```html
*
*
*
*
*
*
*
*
*
* ```
*
* @example
* The pagination element can also go to the next/previous {@link page | `page`}
* programmatically using the {@link next | `next`} and
* {@link previous | `previous`} methods:
* ```html
*
*
*
*
*
* ```
*
* @example
* Every time the {@link page | `page`} attribute/property changes, a
* {@link pageChange | `pageChange`} event is dispatched. The event can be
* observed and the new {@link page | `page`} value can be extracted from the
* event as follows:
* ```html
*
*
*
*
*
* ```
*
* @example
* An optional {@link scrollTarget | `scrollTarget`} property can be given an
* `HTMLElement` via JavaScript. If set, every time a pagination event occurs, the
* viewport will be scrolled so that the element given to the property is visible. For
* example:
* ```html
*
* Some import text
*
*
*
*
*
*
* ```
*/
export declare class LisPaginationElement extends LitElement {
/**
* Fired when the page changes. Dispatches a
* {@link !CustomEvent | `CustomEvent`} containing the new value of the
* {@link page | `page`} property.
* @eventProperty
*/
static readonly pageChange: CustomEvent<{
page: number;
}>;
/** @ignore */
static styles: import("lit").CSSResult;
/** @ignore */
createRenderRoot(): this;
/**
* What page the element is currently on.
*
* @attribute
* @reflected
*/
page: number;
/**
* The total number of pages.
*
* @attribute
* @reflected
*/
numPages?: number;
/**
* Whether or not the next button should be enabled. Note that this will be overridden
* if a value is provided for `numPages`.
*
* @attribute
*/
hasNext: boolean;
/**
* The element to scroll to when the page changes.
*
* @attribute
*/
scrollTarget: HTMLElement | null;
/**
* Programmatically go to the previous page.
*
* @param e - An optional {@link !Event | `Event`} that can be passed if
* called via a UI event,
* for example.
*/
previous(e?: Event): void;
/**
* Programmatically go to the next page.
*
* @param e - An optional {@link !Event | `Event`} that can be passed if
* called via a UI event,
* for example.
*/
next(e?: Event): void;
/** @ignore */
private _hasNext;
/** @ignore */
private _scrollToTarget;
/** @ignore */
private _dispatchPageChange;
/** @ignore */
private _renderPreviousClass;
private _pageInfo;
/** @ignore */
private _renderNextClass;
/** @ignore */
render(): import("lit-html").TemplateResult<1>;
}
declare global {
interface HTMLElementTagNameMap {
'lis-pagination-element': LisPaginationElement;
}
}
//# sourceMappingURL=lis-pagination-element.d.ts.map