import React, { ReactNode } from 'react';
import { RaRecord } from "../../types.js";
import { ListControllerResult } from "./useListController.js";
/**
 * Render prop version of useListContextWithProps
 *
 * @example
 * const BookList = () => (
 *    <List>
 *       <WithListContext render={({ data }) => (
 *          <ul>
 *            {data && data.map(record => (
 *              <li key={record.id}>{record.title}</li>
 *            ))}
 *          </ul>
 *       )} />
 *   </List>
 * );
 */
export declare const WithListContext: <RecordType extends RaRecord>({ empty, loading, offline, error, render, children, ...props }: WithListContextProps<RecordType>) => React.ReactNode;
export interface WithListContextProps<RecordType extends RaRecord> extends React.PropsWithChildren<Partial<Pick<ListControllerResult<RecordType>, 'data' | 'total' | 'isPending'>>> {
    render?: (context: Partial<ListControllerResult<RecordType>>) => ReactNode;
    loading?: React.ReactNode;
    offline?: React.ReactNode;
    errorState?: ListControllerResult<RecordType>['error'];
    error?: React.ReactNode;
    empty?: React.ReactNode;
    /**
     * @deprecated
     */
    label?: string;
}
//# sourceMappingURL=WithListContext.d.ts.map