import * as React from 'react';
import { RaRecord } from "../../types.js";
import { ShowControllerProps, ShowControllerResult } from "./useShowController.js";
import { ReactNode } from 'react';
/**
 * Call useShowController and put the value in a ShowContext
 *
 * Base class for <Show> components, without UI.
 *
 * Accepts any props accepted by useShowController:
 * - id: The record identifier
 * - resource: The resource
 *
 * @example // Custom show layout
 *
 * const PostShow = () => (
 *     <ShowBase resource="posts">
 *         <Grid container>
 *             <Grid item xs={8}>
 *                 <SimpleForm>
 *                     ...
 *                 </SimpleForm>
 *             </Grid>
 *             <Grid item xs={4}>
 *                 Show instructions...
 *             </Grid>
 *         </Grid>
 *         <div>
 *             Post related links...
 *         </div>
 *     </ShowBase>
 * );
 */
export declare const ShowBase: <RecordType extends RaRecord = any>({ authLoading, loading, offline, error, redirectOnError, children, render, ...props }: ShowBaseProps<RecordType>) => React.JSX.Element;
export interface ShowBaseProps<RecordType extends RaRecord = RaRecord> extends ShowControllerProps<RecordType> {
    authLoading?: ReactNode;
    loading?: ReactNode;
    offline?: ReactNode;
    error?: ReactNode;
    children?: React.ReactNode;
    render?: (props: ShowControllerResult<RecordType>) => React.ReactNode;
}
//# sourceMappingURL=ShowBase.d.ts.map