import * as React from 'react';
import { ReactNode } from 'react';
import { InfiniteListControllerProps, InfiniteListControllerResult } from "./useInfiniteListController.js";
import { RaRecord } from "../../types.js";
/**
 * Call useInfiniteListController and put the value in a ListContext
 *
 * Base class for <InfiniteList> components, without UI.
 *
 * Accepts any props accepted by useInfiniteListController:
 * - filter: permanent filter applied to the list
 * - filters: Filter element, to display the filters
 * - filterDefaultValues: object;
 * - perPage: Number of results per page
 * - sort: Default sort
 * - exporter: exported function
 *
 * @example // Custom list layout
 *
 * const PostList = () => (
 *     <InfiniteListBase perPage={10}>
 *         <div>
 *              List metrics...
 *         </div>
 *         <Grid container>
 *             <Grid item xs={8}>
 *                 <SimpleList primaryText={record => record.title} />
 *             </Grid>
 *             <Grid item xs={4}>
 *                 List instructions...
 *             </Grid>
 *         </Grid>
 *         <div>
 *             Post related links...
 *         </div>
 *     </ListBase>
 * );
 */
export declare const InfiniteListBase: <RecordType extends RaRecord = any>({ authLoading, loading, offline, error, empty, children, render, ...props }: InfiniteListBaseProps<RecordType>) => React.JSX.Element;
export interface InfiniteListBaseProps<RecordType extends RaRecord = any> extends InfiniteListControllerProps<RecordType> {
    authLoading?: ReactNode;
    loading?: ReactNode;
    offline?: ReactNode;
    error?: ReactNode;
    empty?: ReactNode;
    children?: ReactNode;
    render?: (props: InfiniteListControllerResult<RecordType>) => ReactNode;
}
//# sourceMappingURL=InfiniteListBase.d.ts.map