import { z, ZodSchema } from "zod"; import type { SuccessfulSubmission } from "../utils/submission.js"; import type { WithParams } from "../utils/with-params.js"; import type { ActionFunctionArgs, AppLoadContext } from "react-router"; type ActionArguments = WithParams>; request: ActionFunctionArgs["request"]; context: AppLoadContext; }>; interface SetupActionsArgs { actionArgs: ActionFunctionArgs; paramSchema?: TParamSchema; querySchema?: TQuerySchema; schema: TSchema; mutation: (args: ActionArguments & (TMiddlewareResult extends undefined ? {} : TMiddlewareResult)) => Promise; middleware?: (args: ActionArguments) => Promise; } declare function setupAction({ actionArgs, schema, mutation, querySchema, paramSchema, middleware }: SetupActionsArgs): Promise> | import("../utils/error.js").ErrorResponse | TResult>; export { setupAction };