import { Schema } from "./adapters/types.mjs";
import {
	d as HookSafeStateActionFn,
	a as HookBaseUtils,
	b as HookCallbacks,
	g as UseStateActionHookReturn,
} from "./hooks.types-CuSFdF4W.mjs";
import "@sinclair/typebox";
import "valibot";
import "yup";
import "zod";
import "./index.types-Cct3QIs2.mjs";

/**
 * Use the stateful action from a Client Component via hook. Used for actions defined with [`stateAction`](https://next-safe-action.dev/docs/define-actions/instance-methods#action--stateaction).
 * @param safeActionFn The action function
 * @param utils Optional `initResult`, `permalink`, base utils and callbacks
 *
 * {@link https://next-safe-action.dev/docs/execute-actions/hooks/usestateaction See docs for more information}
 */
declare const useStateAction: <
	ServerError,
	S extends Schema | undefined,
	const BAS extends readonly Schema[],
	CVE,
	CBAVE,
	Data,
>(
	safeActionFn: HookSafeStateActionFn<ServerError, S, BAS, CVE, CBAVE, Data>,
	utils?: {
		initResult?: Awaited<ReturnType<typeof safeActionFn>>;
		permalink?: string;
	} & HookBaseUtils<S> &
		HookCallbacks<ServerError, S, BAS, CVE, CBAVE, Data>
) => UseStateActionHookReturn<ServerError, S, BAS, CVE, CBAVE, Data>;

export { useStateAction };
