import { type AnyMiddleware, type AnyRouter, type Context, type Middleware } from '@orpc/server'; import type { EnvConfigInput, ValidatedEnv } from '../env.js'; import type { ApiContext } from './context.js'; import { BUNDERSTACK_ERRORS } from '../errors.js'; export type { ProtectedContextAdditions } from './types.js'; export declare function createApiBuilder = Record, TEnv = Record>(): { public: import("@orpc/server").BuilderWithMiddlewares & object, object, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>; protected: import("@orpc/server").BuilderWithMiddlewares & object, Omit & { user: import("..").AccessUser; session: { activeOrganizationId: string | null; }; }, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>; webhook: import("@orpc/server").BuilderWithMiddlewares & object, object, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>; /** * Declares a standalone middleware over the base context. Use it for * `createBunderstack({ middleware })`, which reaches every procedure in * the graph, and for `.use(...)` on any base declared here. * * The annotation is explicit because the inferred `DecoratedMiddleware` * is internal to `@orpc/server` and cannot be named in the emitted types. */ middleware: (middleware: Middleware, TOutContext, unknown, unknown, typeof BUNDERSTACK_ERRORS>) => AnyMiddleware; }; /** * Same builder as `createApiBuilder`, but the generics come from the values an * application already has. It reads nothing at runtime, so a module can call it * at import time and export the bases that its router modules import. */ export declare function defineApi, TEnv extends EnvConfigInput | undefined = undefined>(_options: { schema: TSchema; env?: TEnv; }): { public: import("@orpc/server").BuilderWithMiddlewares> & object, object, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>; protected: import("@orpc/server").BuilderWithMiddlewares> & object, Omit & { user: import("..").AccessUser; session: { activeOrganizationId: string | null; }; }, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>; webhook: import("@orpc/server").BuilderWithMiddlewares> & object, object, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>; /** * Declares a standalone middleware over the base context. Use it for * `createBunderstack({ middleware })`, which reaches every procedure in * the graph, and for `.use(...)` on any base declared here. * * The annotation is explicit because the inferred `DecoratedMiddleware` * is internal to `@orpc/server` and cannot be named in the emitted types. */ middleware: (middleware: Middleware>, TOutContext, unknown, unknown, { readonly BAD_REQUEST: { readonly data: import("valibot").OptionalSchema, "BAD_REQUEST">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "BAD_REQUEST"; }>; }; readonly UNAUTHORIZED: { readonly data: import("valibot").OptionalSchema, "UNAUTHORIZED">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "UNAUTHORIZED"; }>; }; readonly FORBIDDEN: { readonly data: import("valibot").OptionalSchema, "FORBIDDEN">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "FORBIDDEN"; }>; }; readonly NOT_FOUND: { readonly data: import("valibot").OptionalSchema, "NOT_FOUND">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "NOT_FOUND"; }>; }; readonly CONFLICT: { readonly data: import("valibot").OptionalSchema, "CONFLICT">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "CONFLICT"; }>; }; readonly PAYLOAD_TOO_LARGE: { readonly data: import("valibot").OptionalSchema, "PAYLOAD_TOO_LARGE">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "PAYLOAD_TOO_LARGE"; }>; }; readonly TOO_MANY_REQUESTS: { readonly data: import("valibot").OptionalSchema, "TOO_MANY_REQUESTS">; readonly details: import("valibot").OptionalSchema; }, undefined>, { readonly code: "TOO_MANY_REQUESTS"; }>; }; }>) => AnyMiddleware; }; export type BunderstackApiBuilder, TEnv = Record> = ReturnType>; export type ApiFactory, TEnv, TCustomApiRouter extends AnyRouter> = (builder: BunderstackApiBuilder) => TCustomApiRouter; //# sourceMappingURL=builder.d.ts.map