import { SafeResult, AnyORPCErrorJSON } from '@orpc/client'; import { S as ServerFunction, a as ServerFunctionError } from '../shared/next.Bd7DAp0r.js'; import { Interceptor, PromiseWithError } from '@orpc/shared'; import '@orpc/server'; interface UserSeverFunctionOptions { interceptors?: Interceptor<{ input: TInput; }, PromiseWithError>[]; } interface UseServerFunctionExecuteOptions extends Pick, 'interceptors'> { } type UseServerFunctionExecuteRest = undefined extends TInput ? [input?: TInput, options?: UseServerFunctionExecuteOptions] : [input: TInput, options?: UseServerFunctionExecuteOptions]; interface UseServerFunctionResultBase { reset: () => void; execute: (...rest: UseServerFunctionExecuteRest) => Promise>; } interface UseServerFunctionIdleResult extends UseServerFunctionResultBase { input: undefined; data: undefined; error: null; isIdle: true; isPending: false; isSuccess: false; isError: false; status: 'idle'; executedAt: undefined; } interface UseServerFunctionPendingResult extends UseServerFunctionResultBase { input: TInput; data: undefined; error: null; isIdle: false; isPending: true; isSuccess: false; isError: false; status: 'pending'; executedAt: Date; } interface UseServerFunctionSuccessResult extends UseServerFunctionResultBase { input: TInput; data: TOutput; error: null; isIdle: false; isPending: false; isSuccess: true; isError: false; status: 'success'; executedAt: Date; } interface UseServerFunctionErrorResult extends UseServerFunctionResultBase { input: TInput; data: undefined; error: TError; isIdle: false; isPending: false; isSuccess: false; isError: true; status: 'error'; executedAt: Date; } type UseServerFunctionResult = UseServerFunctionIdleResult | UseServerFunctionSuccessResult | UseServerFunctionErrorResult | UseServerFunctionPendingResult; declare function useServerFunction(fn: ServerFunction, options?: UserSeverFunctionOptions>): UseServerFunctionResult>; interface UseOptimisticServerFunctionOptions extends UserSeverFunctionOptions { optimisticPassthrough: TOptimisticState; optimisticReducer: (state: TOptimisticState, input: TInput) => TOptimisticState; } type UseOptimisticServerFunctionResult = UseServerFunctionResult & { optimisticState: TOptimisticState; }; declare function useOptimisticServerFunction(fn: ServerFunction, options: UseOptimisticServerFunctionOptions, TOptimisticState>): UseOptimisticServerFunctionResult, TOptimisticState>; export { useOptimisticServerFunction, useServerFunction }; export type { UseOptimisticServerFunctionOptions, UseOptimisticServerFunctionResult, UseServerFunctionErrorResult, UseServerFunctionExecuteOptions, UseServerFunctionExecuteRest, UseServerFunctionIdleResult, UseServerFunctionPendingResult, UseServerFunctionResult, UseServerFunctionResultBase, UseServerFunctionSuccessResult, UserSeverFunctionOptions };