import React from 'react';
import PropTypes from 'prop-types';
import { Pagination } from './Pagination';
import { CommonListLayoutProps, CommonListLayoutDefaultProps } from '../common/CommonListLayout';
import { Store } from '../../../data/Store';
declare type ListLayoutProps = {
    store: Store<any>;
    paginationProps?: object;
    paginationComponent?: React.Component;
} & CommonListLayoutProps & Partial<DefaultProps>;
declare type DefaultProps = {
    paginationProps: object;
    paginationComponent: React.Component;
} & CommonListLayoutDefaultProps;
export declare class ListLayout extends React.Component<ListLayoutProps> {
    static propTypes: {
        store: PropTypes.Validator<object>;
        hasStoreCounterText: PropTypes.Requireable<boolean>;
        storeCounterText: PropTypes.Requireable<string>;
        paginationProps: PropTypes.Requireable<PropTypes.InferProps<{
            store: PropTypes.Validator<object>;
            availablePageSizes: PropTypes.Requireable<any[]>;
            defaultPageSize: PropTypes.Requireable<number>;
            beforeNavigate: PropTypes.Requireable<(...args: any[]) => any>;
            beforeDropdownChange: PropTypes.Requireable<(...args: any[]) => any>;
            onPageSizeChange: PropTypes.Requireable<(...args: any[]) => any>;
            onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
        }>>;
        paginationComponent: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        hasStoreCounterText: boolean;
        readonly storeCounterText: string;
        paginationProps: {
            availablePageSizes: number[];
            defaultPageSize: number;
            beforeNavigate: any;
            beforeDropdownChange: any;
            onPageSizeChange: any;
            onPageChange: any;
        };
        paginationComponent: typeof Pagination;
    };
    static VIEW_MODE_DETAILS: string;
    static VIEW_MODE_FULL: string;
    renderCounterText: () => JSX.Element;
    renderPagination: (showPageSizeSelector?: boolean) => JSX.Element;
    render(): JSX.Element;
}
export {};
