import { UseCreateOptions } from "../../dataProvider/index.cjs";
import { RedirectionSideEffect } from "../../routing/index.cjs";
import { SaveContextValue } from "../saveContext/index.cjs";
import { Identifier, MutationMode, RaRecord, TransformData } from "../../types.cjs";
/**
 * Prepare data for the Create view
 *
 * @param {Object} props The props passed to the Create component.
 *
 * @return {Object} controllerProps Fetched data and callbacks for the Create view
 *
 * @example
 *
 * import { useCreateController } from 'react-admin';
 * import CreateView from './CreateView';
 *
 * const MyCreate = props => {
 *     const controllerProps = useCreateController(props);
 *     return <CreateView {...controllerProps} {...props} />;
 * }
 */
export declare const useCreateController: <RecordType extends Omit<RaRecord, "id"> = any, MutationOptionsError = Error, ResultRecordType extends RaRecord = RecordType & {
    id: Identifier;
}>(props?: CreateControllerProps<RecordType, MutationOptionsError, ResultRecordType>) => CreateControllerResult<RecordType>;
export interface CreateControllerProps<RecordType extends Omit<RaRecord, 'id'> = any, MutationOptionsError = Error, ResultRecordType extends RaRecord = RecordType & {
    id: Identifier;
}> {
    disableAuthentication?: boolean;
    hasEdit?: boolean;
    hasShow?: boolean;
    record?: Partial<RecordType>;
    redirect?: RedirectionSideEffect;
    resource?: string;
    mutationMode?: MutationMode;
    mutationOptions?: UseCreateOptions<RecordType, MutationOptionsError, ResultRecordType> & {
        meta?: any;
    };
    transform?: TransformData;
}
export interface CreateControllerResult<RecordType extends Omit<RaRecord, 'id'> = any> extends SaveContextValue {
    defaultTitle?: string;
    isFetching: boolean;
    isPending: boolean;
    isLoading: boolean;
    record?: Partial<RecordType>;
    redirect: RedirectionSideEffect;
    resource: string;
    saving: boolean;
}
//# sourceMappingURL=useCreateController.d.ts.map