import { Identifier, RaRecord } from "../types.js";
import { CreatePathType } from "./useCreatePath.js";
import type { RouterTo } from "./RouterProvider.js";
/**
 * Target for redirection - can be a path string or a location object
 */
type RedirectTarget = RouterTo;
type RedirectToFunction = (resource?: string, id?: Identifier, data?: Partial<RaRecord>, state?: object) => RedirectTarget;
export type RedirectionSideEffect = CreatePathType | false | RedirectToFunction;
/**
 * Hook for Redirection Side Effect
 *
 * @example
 *
 * const redirect = useRedirect();
 * // redirect to list view
 * redirect('list', 'posts');
 * // redirect to edit view
 * redirect('edit', 'posts', 123);
 * // redirect to edit view with state data
 * redirect('edit', 'comments', 123, {}, { record: { post_id: record.id } });
 * // do not redirect
 * redirect(false);
 * // redirect to the result of a function
 * redirect((resource, id, data) => ...)
 * // redirect to an absolute URL
 * redirect('https://marmelab.com/react-admin');
 */
export declare const useRedirect: () => (redirectTo: RedirectionSideEffect, resource?: string, id?: Identifier, data?: Partial<RaRecord>, state?: object) => void;
export {};
//# sourceMappingURL=useRedirect.d.ts.map