/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';
import { ISelectOption } from '../select';
import { IPaginatorComponent } from './paginator';
import { PaginatorAlternativeAlignment } from './paginator-constants';
export declare type PaginatorFieldIdentifier = 'first' | 'last' | 'previous' | 'next' | 'page-size';
export interface IPaginatorAdapter extends IBaseAdapter {
    setLabel(value: string): void;
    setPageSizeOptions(options: ISelectOption[]): void;
    setPageSize(value: number): void;
    setRangeLabel(value: string): void;
    hasFirstPageButton(): boolean;
    showFirstPageButton(): void;
    hideFirstPageButton(): void;
    hasLastPageButton(): boolean;
    showLastPageButton(): void;
    hideLastPageButton(): void;
    attachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;
    attachFirstPageListener(listener: (evt: Event) => void): void;
    attachPreviousPageListener(listener: (evt: Event) => void): void;
    attachNextPageListener(listener: (evt: Event) => void): void;
    attachLastPageListener(listener: (evt: Event) => void): void;
    detachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;
    detachFirstPageListener(listener: (evt: Event) => void): void;
    detachPreviousPageListener(listener: (evt: Event) => void): void;
    detachNextPageListener(listener: (evt: Event) => void): void;
    detachLastPageListener(listener: (evt: Event) => void): void;
    disableFirstPageButton(): void;
    enableFirstPageButton(): void;
    disablePreviousPageButton(): void;
    enablePreviousPageButton(): void;
    disableNextPageButton(): void;
    enableNextPageButton(): void;
    disablePageSizeSelect(): void;
    enablePageSizeSelect(): void;
    setPageSizeVisibility(visible: boolean): void;
    disableLastPageButton(): void;
    enableLastPageButton(): void;
    setAlternative(alternative: boolean): void;
    setAlignment(alignment: PaginatorAlternativeAlignment): void;
    hasFocus(): boolean;
    setFocus(options?: FocusOptions): void;
    getFocusedField(): PaginatorFieldIdentifier | null;
    tryDisableFields(fieldsToDisable: PaginatorFieldIdentifier[]): void;
}
/**
 * Provides facilities for interacting with the internal DOM of `PaginatorComponent`.
 */
export declare class PaginatorAdapter extends BaseAdapter<IPaginatorComponent> implements IPaginatorAdapter {
    private _labelElement;
    private _root;
    private _pageSizeSelect;
    private _rangeLabel;
    private _rangeLabelAlternative;
    private _firstPageButton;
    private _firstPageIconButton;
    private _firstPagePlaceholder;
    private _previousPageButton;
    private _nextPageButton;
    private _lastPageButton;
    private _lastPageIconButton;
    private _lastPagePlaceholder;
    constructor(component: IPaginatorComponent);
    setLabel(value: string): void;
    setPageSizeOptions(options: ISelectOption[]): void;
    setPageSize(value: number): void;
    setRangeLabel(value: string): void;
    hasFirstPageButton(): boolean;
    showFirstPageButton(): void;
    hideFirstPageButton(): void;
    hasLastPageButton(): boolean;
    showLastPageButton(): void;
    hideLastPageButton(): void;
    attachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;
    attachFirstPageListener(listener: (evt: Event) => void): void;
    attachPreviousPageListener(listener: (evt: Event) => void): void;
    attachNextPageListener(listener: (evt: Event) => void): void;
    attachLastPageListener(listener: (evt: Event) => void): void;
    detachPageSizeChangeListener(listener: (evt: CustomEvent) => void): void;
    detachFirstPageListener(listener: (evt: Event) => void): void;
    detachPreviousPageListener(listener: (evt: Event) => void): void;
    detachNextPageListener(listener: (evt: Event) => void): void;
    detachLastPageListener(listener: (evt: Event) => void): void;
    disableFirstPageButton(): void;
    enableFirstPageButton(): void;
    disablePreviousPageButton(): void;
    enablePreviousPageButton(): void;
    disableNextPageButton(): void;
    enableNextPageButton(): void;
    disablePageSizeSelect(): void;
    enablePageSizeSelect(): void;
    setPageSizeVisibility(visible: boolean): void;
    disableLastPageButton(): void;
    enableLastPageButton(): void;
    setAlternative(alternative: boolean): void;
    setAlignment(alignment: PaginatorAlternativeAlignment): void;
    hasFocus(): boolean;
    setFocus(options?: FocusOptions): void;
    getFocusedField(): PaginatorFieldIdentifier | null;
    tryDisableFields(fieldsToDisable: PaginatorFieldIdentifier[]): void;
    private _tryFocus;
}
