import { Props } from '../../utils/types';
import { MenuRef, Selection } from '../MenuImperative/MenuImperative.types';
export interface FieldProps extends Props {
    /**
     * @since 10.19.0
     */
    label?: string;
}
export interface PageNotationProps extends Props {
    /**
     * @since 10.19.0
     */
    end: number;
    /**
     * @since 10.19.0
     */
    items: number;
    /**
     * @since 10.19.0
     */
    start: number;
}
export interface NavigationIconProps extends Props {
    /**
     * @since 10.19.0
     */
    disabled?: boolean;
    /**
     * @since 10.19.0
     */
    onClick?: any;
}
export interface PresetPaginationProps extends Props {
    /**
     * Current page selected, 1 based.
     * @since 10.19.0
     */
    activePage?: number;
    /**
     * Total number of items across pages.
     * @since 10.19.0
     */
    items: number;
    /**
     * A callback that receives the page selected.
     * @since 10.19.0
     */
    onSelectPage?: (page: number) => void;
    /**
     * Number of items per page.
     * @since 10.19.0
     */
    perPage?: number;
    /**
     * @deprecated
     *
     * The `fieldLabel` has been deprecated and will be removed in a future version.
     * The `Pagination` component now handles i18n internally and this prop has no effect,
     * please remove it from usage.
     *
     *
     * **Before**
     *
     * `<Pagination fieldLabel={window.i18n.t('my.key')} />`
     *
     * **After**
     *
     * `<Pagination />`
     *
     * @deprecatedSince 10.20.0
     * @since 10.19.0
     */
    fieldLabel?: string;
}
export interface PaginationMenuProps {
    /**
     * @since 10.19.0
     */
    activePage: number;
    /**
     * @since 10.19.0
     */
    menuRef: React.RefObject<MenuRef>;
    /**
     * @since 10.19.0
     */
    pages: number;
    /**
     * @since 10.19.0
     */
    onSelect?: PageSelectProps['onSelect'];
}
export interface PageSelectProps extends Props {
    /**
     * @since 10.19.0
     */
    activePage?: number;
    /**
     * @since 10.19.0
     */
    disabled?: boolean;
    /**
     * @since 10.19.0
     */
    onSelect?: (selection: Selection) => any;
    /**
     * @since 10.19.0
     */
    pages?: number;
}
export interface PaginationHookConfig {
    /**
     * @since 10.19.0
     */
    activePage: number;
    /**
     * @since 10.19.0
     */
    items: number;
    /**
     * @since 10.19.0
     */
    onSelectPage: (page: number) => void;
    /**
     * @since 10.19.0
     */
    perPage: number;
}
export interface PaginationHook {
    /**
     * @since 10.19.0
     */
    end: number;
    /**
     * @since 10.19.0
     */
    isFirst: boolean;
    /**
     * @since 10.19.0
     */
    isLast: boolean;
    /**
     * @since 10.19.0
     */
    pages: number;
    /**
     * @since 10.19.0
     */
    selectNext: () => void;
    /**
     * @since 10.19.0
     */
    selectPage: (selection: Selection) => void;
    /**
     * @since 10.19.0
     */
    selectPrev: () => void;
    /**
     * @since 10.19.0
     */
    start: number;
}
