import type { Submission } from "@conform-to/dom";
import type { ActionFunction } from "react-router";
import type { ZodSchema } from "zod";
import type { SuccessResponseData } from "../hooks/use-action.js";
type RespondWithErrorOptions = {
    code?: number;
    message?: string;
    type?: "error" | "invalid_submission";
};
declare function respondWithError<TResponse>(responseData: TResponse, options?: RespondWithErrorOptions): ErrorResponse<TResponse> | InvalidSubmissionResponse<ReturnType<Submission<TResponse>["reply"]>>;
type ErrorResponse<TResult> = {
    status: "error";
    type: "error";
    result: TResult;
    code: number;
    message?: string;
};
type InvalidSubmissionResponse<TResponse> = {
    status: "error";
    type: "invalid_submission";
    result: TResponse;
    code: number;
    message?: string;
};
declare function isErrorResponse<TData>(response: any): response is ErrorResponse<TData>;
declare function isSuccessResponse<TAction extends ActionFunction, TSchema extends ZodSchema>(response: any): response is SuccessResponseData<TAction, TSchema>;
export { respondWithError, isErrorResponse, isSuccessResponse };
export type { ErrorResponse, InvalidSubmissionResponse };
