import { default as React } from 'react';
import { LinkProps, NoLinkProps } from './types';
export type PaginationTexts = {
    nextButtonAriaLabel: string;
    /**
     *  Omiting this and previousButtonText will result in an icon-only button.
     */
    nextButtonText?: string;
    /**
     * This is the divider word between the current page and the total number of pages.
     * For example, if the current page is 1 and the total number of pages is 10, the text will be "1 of 10".
     */
    outOfLabel: string;
    /**
     * This is a hidden label for the page selector
     */
    pageSelectorLabel: string;
    /**
     * This is the "..." text that is displayed when there are more pages than can be shown at once.
     */
    truncationSeparatorAriaLabel?: string;
    previousButtonAriaLabel: string;
    /**
     *  Omiting this and nextButtonText will result in an icon-only button.
     */
    previousButtonText?: string;
    /**
     * This is a screen reader text that will be inserted before the current page number. For example, for step 1 it will say "Go to step 1".
     */
    stepNumberPrefix: string;
};
export type PageSizeProps = {
    availablePageSizes: number[];
    pageSize?: number;
    /**
     * The label describing the page size select.
     */
    pageSizeLabel: string;
};
export type NoPageSizeProps = {
    availablePageSizes?: never;
    pageSize?: number;
    pageSizeLabel?: never;
};
export type PaginationProps = {
    currentPage: number;
    pageSelectorId?: string;
    totalItems: number;
} & PaginationTexts & (PageSizeProps | NoPageSizeProps) & (LinkProps | NoLinkProps);
export declare const Pagination: React.ForwardRefExoticComponent<(Omit<{
    currentPage: number;
    pageSelectorId?: string;
    totalItems: number;
} & PaginationTexts & PageSizeProps & Omit<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & {
    [key: `data-${string}`]: string | undefined;
}, "children"> & {
    linkElement?: import('./types').Link;
    asLink: true;
    hrefGetter: (hrefInformation: import('./types').HrefInformation) => string;
    navigationFunction?: (navigationInformation: import('./types').NavigationInformation) => void;
    onPageChange?: (paginationChangeInformation: import('./types').PaginationInformation) => void;
}, "ref"> | Omit<{
    currentPage: number;
    pageSelectorId?: string;
    totalItems: number;
} & PaginationTexts & PageSizeProps & Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    [key: `data-${string}`]: string | undefined;
}, "children"> & {
    linkElement?: never;
    asLink?: never;
    hrefGetter?: never;
    navigationFunction?: never;
    onPageChange: (paginationChangeInformation: import('./types').PaginationInformation) => void;
}, "ref"> | Omit<{
    currentPage: number;
    pageSelectorId?: string;
    totalItems: number;
} & PaginationTexts & NoPageSizeProps & Omit<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & {
    [key: `data-${string}`]: string | undefined;
}, "children"> & {
    linkElement?: import('./types').Link;
    asLink: true;
    hrefGetter: (hrefInformation: import('./types').HrefInformation) => string;
    navigationFunction?: (navigationInformation: import('./types').NavigationInformation) => void;
    onPageChange?: (paginationChangeInformation: import('./types').PaginationInformation) => void;
}, "ref"> | Omit<{
    currentPage: number;
    pageSelectorId?: string;
    totalItems: number;
} & PaginationTexts & NoPageSizeProps & Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
    [key: `data-${string}`]: string | undefined;
}, "children"> & {
    linkElement?: never;
    asLink?: never;
    hrefGetter?: never;
    navigationFunction?: never;
    onPageChange: (paginationChangeInformation: import('./types').PaginationInformation) => void;
}, "ref">) & React.RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=pagination.d.ts.map