import * as React from 'react';
import { ReactNode } from 'react';
import { CreateControllerProps, CreateControllerResult } from "./useCreateController.cjs";
import { Identifier, RaRecord } from "../../types.cjs";
/**
 * Call useCreateController and put the value in a CreateContext
 *
 * Base class for <Create> components, without UI.
 *
 * Accepts any props accepted by useCreateController:
 * - id: The record identifier
 * - resource: The resource
 *
 * @example // Custom edit layout
 *
 * const PostCreate = () => (
 *     <CreateBase>
 *         <Grid container>
 *             <Grid item xs={8}>
 *                 <SimpleForm>
 *                     ...
 *                 </SimpleForm>
 *             </Grid>
 *             <Grid item xs={4}>
 *                 Create instructions...
 *             </Grid>
 *         </Grid>
 *         <div>
 *             Post related links...
 *         </div>
 *     </CreateBase>
 * );
 */
export declare const CreateBase: <RecordType extends Omit<RaRecord, "id"> = any, ResultRecordType extends RaRecord = RecordType & {
    id: Identifier;
}, MutationOptionsError = Error>({ children, render, loading, authLoading, ...props }: CreateBaseProps<RecordType, ResultRecordType, MutationOptionsError>) => React.JSX.Element;
export interface CreateBaseProps<RecordType extends Omit<RaRecord, 'id'> = any, ResultRecordType extends RaRecord = RecordType & {
    id: Identifier;
}, MutationOptionsError = Error> extends CreateControllerProps<RecordType, MutationOptionsError, ResultRecordType> {
    children?: ReactNode;
    render?: (props: CreateControllerResult<RecordType>) => ReactNode;
    authLoading?: ReactNode;
    /**
     * @deprecated use authLoading instead
     */
    loading?: ReactNode;
}
//# sourceMappingURL=CreateBase.d.ts.map