import { FarmCacheInvalidationTarget } from './cache.js'; import { S as ServerFnFailure, a as ServerActionError } from './server-fn-error-DDh14a0V.js'; export { F as FARM_SERVER_FN_FAILURE_SYMBOL, b as SerializedServerFnFailure, c as createServerFnTransportError, i as isServerFnFailure } from './server-fn-error-DDh14a0V.js'; type MaybePromise = T | Promise; type ServerFnSchema = { _input?: any; _output?: any; parse?: (data: unknown) => any; parseAsync?: (data: unknown) => Promise; safeParse?: (data: unknown) => any; safeParseAsync?: (data: unknown) => Promise; }; type InferServerFnSchemaInput = T extends { _input: infer I; } ? I : unknown; type InferServerFnSchemaOutput = T extends { _output: infer O; } ? O : T extends { parse: (data: unknown) => infer R; } ? R : unknown; type ServerFnErrorSchema = ServerFnSchema & ({ parse: (data: unknown) => unknown; } | { safeParse: (data: unknown) => unknown; }); type ServerFnErrorDefinition = { status: TStatus; /** Schema for the public error payload exposed to callers. */ data: TSchema; /** Public message safe to expose to callers. */ message?: string; }; type ServerFnErrorDefinitions = Record>; type ServerFnDeclaredError = { [TCode in keyof TErrors]: ServerFnFailure, TErrors[TCode]["status"]>; }[keyof TErrors]; type ServerFnError = keyof TErrors extends never ? Error : ServerActionError | ServerFnDeclaredError; type ServerFnErrorHandler = (code: TCode, data: InferServerFnSchemaInput) => never; type ServerFnFormInput = FormData; type Simplify = { [TKey in keyof T]: T[TKey]; } & {}; type AssignContext = Simplify & TNext>; type MiddlewareContext = TMiddleware extends ServerFnMiddleware ? TContext : {}; type ServerFnMiddlewareContext = TMiddlewares extends readonly [infer TMiddleware, ...infer TRest] ? TMiddleware extends AnyServerFnMiddleware ? TRest extends readonly AnyServerFnMiddleware[] ? ServerFnMiddlewareContext>> : TContext : TContext : number extends TMiddlewares["length"] ? Simplify> : Simplify; declare const SERVER_FN_MIDDLEWARE_CONTEXT: unique symbol; type ServerFnMiddlewareContinuation = { readonly [SERVER_FN_MIDDLEWARE_CONTEXT]: TContext; }; type ServerFnMiddlewareNext = (options?: { context?: TContext; }) => Promise>; type ServerFnContext = { input: TInput; rawInput: unknown; formData?: FormData; /** The action request when invoked across the network. Undefined for direct server calls. */ request?: Request; /** Aborts when the underlying action request is cancelled. */ signal: AbortSignal; /** Context produced by this server function's middleware chain. */ context: Readonly; }; type ServerFnHandlerContext = ServerFnContext & { /** Return a declared, validated error from this server function. */ error: ServerFnErrorHandler; }; type ServerFnHandler = (ctx: ServerFnHandlerContext) => MaybePromise; type ServerFnInvalidationContext = ServerFnContext & { /** Parsed value returned by the successful server function. */ result: TResult; }; type ServerFnInvalidations = readonly FarmCacheInvalidationTarget[] | ((context: ServerFnInvalidationContext) => readonly FarmCacheInvalidationTarget[] | Promise); type ServerFnMiddlewareHandlerContext = ServerFnContext & { next: ServerFnMiddlewareNext; }; type ServerFnMiddlewareHandler = (ctx: ServerFnMiddlewareHandlerContext) => MaybePromise>; type ServerFnMiddleware = { readonly __farmServerFnMiddleware: true; readonly __farmServerFnMiddlewareContext?: TContext; readonly middleware: readonly AnyServerFnMiddleware[]; readonly handler: ServerFnMiddlewareHandler; }; type AnyServerFnMiddleware = ServerFnMiddleware; type ServerFnMiddlewareOptions = { middleware?: TMiddlewares; handler: ServerFnMiddlewareHandler, TProvidedContext>; }; type ServerFnOptions = { input?: TSchema; output?: undefined; middleware?: TMiddlewares; errors?: TErrors; invalidates?: ServerFnInvalidations : unknown, Awaited, ServerFnMiddlewareContext>; handler: ServerFnHandler : unknown, TResult, ServerFnMiddlewareContext, TErrors>; }; type ServerFnOutputOptions = { input?: TInputSchema; output: TOutputSchema; middleware?: TMiddlewares; errors?: TErrors; invalidates?: ServerFnInvalidations : unknown, Awaited>, ServerFnMiddlewareContext>; handler: ServerFnHandler : unknown, unknown, ServerFnMiddlewareContext, TErrors>; }; type ServerFn = ([unknown] extends [TInput] ? (input?: TInput | FormData) => Promise : (input: TInput | FormData) => Promise) & { readonly __farmServerFn: true; readonly __farmServerFnInput?: unknown; readonly __farmServerFnOutput?: unknown; readonly __farmServerFnError: TError; }; type InferServerFnError = TServerFn extends ServerFn ? TError : Error; declare const FARM_SERVER_FN_SYMBOL: unique symbol; declare function createServerMiddleware(options: ServerFnMiddlewareOptions): ServerFnMiddleware, TProvidedContext>>; declare function createServerFn(options: ServerFnOutputOptions): ServerFn, Awaited>, ServerFnError>; declare function createServerFn(options: ServerFnOutputOptions): ServerFn>, ServerFnError>; declare function createServerFn(options: ServerFnOptions): ServerFn, Awaited, ServerFnError>; declare function createServerFn(options: ServerFnOptions): ServerFn, ServerFnError>; declare function _parseServerFnSchema(schema: ServerFnSchema | undefined, value: unknown, contract: "input" | "output", owner?: string): Promise; export { type AnyServerFnMiddleware, FARM_SERVER_FN_SYMBOL, type InferServerFnError, type InferServerFnSchemaInput, type InferServerFnSchemaOutput, ServerActionError, type ServerFn, type ServerFnContext, type ServerFnDeclaredError, type ServerFnError, type ServerFnErrorDefinition, type ServerFnErrorDefinitions, type ServerFnErrorHandler, type ServerFnErrorSchema, ServerFnFailure, type ServerFnFormInput, type ServerFnHandler, type ServerFnHandlerContext, type ServerFnInvalidationContext, type ServerFnInvalidations, type ServerFnMiddleware, type ServerFnMiddlewareContext, type ServerFnMiddlewareContinuation, type ServerFnMiddlewareHandler, type ServerFnMiddlewareHandlerContext, type ServerFnMiddlewareNext, type ServerFnMiddlewareOptions, type ServerFnOptions, type ServerFnOutputOptions, type ServerFnSchema, _parseServerFnSchema, createServerFn, createServerMiddleware };