import type { TAuthMode, TAuthStrategy } from '../../auth/authenticate/common/constants'; import type { IAuthorizationSpec } from '../../auth/authorize/common/types'; import type { TIdSchemaType } from '../../models/common'; import type { TAnyObjectSchema } from '../common/schema-builders'; import { z } from '@hono/zod-openapi'; import type { ICustomizableRoutes } from '../common'; /** Picks user-overridden response schema if present (and non-undefined), else the default. */ type TResolvedResponseSchema = C extends { response: { schema: infer S extends z.ZodType; }; } ? S : D; /** * Every method here is an unbound static, called from the exported aliases below without a * receiver - a method must call another via `RouteConfigResolver.other(...)`, never * `this.other(...)`, or `this` is `undefined` at the call site. */ export declare class RouteConfigResolver { /** Path params always reach the validator as strings, so a number-typed id must be coerced before `z.number()` sees it - `idParamsSchema` alone rejects `/accounts/7`. */ private static idPathParamsSchema; /** * The default body of a write route: the entity schema without the keys the entity stamps, and on * an update without `id` - the path or `where` names the rows. Zod strips a left-out key a client * sends. With nothing to leave out the schema itself is the body, refinements and OpenAPI name kept. */ private static toWriteBodySchema; /** Picks the caller's per-route `request.params` override, else the entity's id path-param schema. */ private static resolveIdParams; /** Creates conditional count response schema. */ static conditionalCountResponse(dataSchema: T): z.ZodUnion; data: T; }, z.core.$strip>, T]>; /** Resolves a route's response schema - user override or default. Holds the one cast every `resolve*Config` needs: generic `C` is only known by its wider structural constraint, so it cannot be proven at the value level to collapse to `TResolvedResponseSchema`. */ private static resolveResponseSchema; static resolveCountConfig(opts: { config: C; isStrict: boolean; }): { request: { query: TAnyObjectSchema | z.ZodObject<{ where: z.ZodUnion>, z.ZodPipe>, z.ZodType>>]> | z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; }, z.core.$strip>; }; response: { description: string; schema: TResolvedResponseSchema; }, z.core.$strip>>; headers: import("../common").TResponseHeaders; }; }; static resolveFindConfig(opts: { config: C; selectSchema: FindSchema; }): { request: { query: TAnyObjectSchema | z.ZodObject<{ filter: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>, z.ZodPipe>, z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; response: { description: string; schema: TResolvedResponseSchema; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>>; headers: import("../common").TResponseHeaders; }; }; static resolveFindByIdConfig(opts: { idType: TIdSchemaType; config: C; selectSchema: FindByIdSchema; }): { request: { params: z.ZodObject<{ id: z.ZodString; }, z.core.$strip> | TAnyObjectSchema | z.ZodObject<{ id: z.ZodCoercedNumber; }, z.core.$strip>; query: TAnyObjectSchema | z.ZodObject<{ filter: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>, z.ZodPipe>, z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; response: { description: string; schema: TResolvedResponseSchema; data: FindByIdSchema; }, z.core.$strip>, FindByIdSchema]>>; headers: import("../common").TResponseHeaders; }; }; static resolveFindOneConfig(opts: { config: C; selectSchema: FindOneSchema; }): { request: { query: TAnyObjectSchema | z.ZodObject<{ filter: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>, z.ZodPipe>, z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; response: { description: string; schema: TResolvedResponseSchema; data: FindOneSchema; }, z.core.$strip>, FindOneSchema]>>; headers: import("../common").TResponseHeaders; }; }; /** `serverStampedKeys` - what the entity reports from `getServerStampedKeys()`; the default body leaves them out. */ static resolveCreateConfig(opts: { config: C; selectSchema: SelectSchema; createSchema: CreateSchema; serverStampedKeys?: string[]; }): { request: { body: TAnyObjectSchema; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; response: { description: string; schema: TResolvedResponseSchema; data: SelectSchema; }, z.core.$strip>, SelectSchema]>>; headers: import("../common").TResponseHeaders; }; }; private static resolveUpdateByIdConfig; private static resolveUpdateByConfig; private static resolveDeleteByIdConfig; private static resolveDeleteByConfig; /** * Generates complete route configurations for a CRUD controller. `serverStampedKeys` - what the * entity reports from `getServerStampedKeys()`; the default write bodies leave them out. */ static defineControllerRouteConfigs(opts: { isStrict: boolean; idType: TIdSchemaType; authenticate?: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; authorize?: IAuthorizationSpec | IAuthorizationSpec[]; schema: { select: SelectSchema; create: CreateSchema; update: UpdateSchema; }; serverStampedKeys?: string[]; routes?: Routes; }): { readonly COUNT: { readonly method: "get"; readonly path: "/count"; readonly description: "Count records matching where condition"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { query: TAnyObjectSchema | z.ZodObject<{ where: z.ZodUnion>, z.ZodPipe>, z.ZodType>>]> | z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodObject<{ count: z.ZodDefault; }, z.core.$strip>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodObject<{ count: z.ZodDefault; }, z.core.$strip>; }; }; required: boolean | undefined; }; }; }; readonly FIND: { readonly method: "get"; readonly path: "/"; readonly description: "Find records with filter, pagination, sorting, and relations"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { query: TAnyObjectSchema | z.ZodObject<{ filter: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>, z.ZodPipe>, z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>; }; }; required: boolean | undefined; }; }; }; readonly FIND_BY_ID: { readonly method: "get"; readonly path: "/{id}"; readonly description: "Find single record by ID"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { params: z.ZodObject<{ id: z.ZodString; }, z.core.$strip> | TAnyObjectSchema | z.ZodObject<{ id: z.ZodCoercedNumber; }, z.core.$strip>; query: TAnyObjectSchema | z.ZodObject<{ filter: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>, z.ZodPipe>, z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; }; }; }; readonly FIND_ONE: { readonly method: "get"; readonly path: "/find-one"; readonly description: "Find first record matching filter"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { query: TAnyObjectSchema | z.ZodObject<{ filter: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>, z.ZodPipe>, z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; fields: z.ZodOptional, z.ZodArray]>>; include: z.ZodOptional>>>; }, z.core.$strip>>>; order: z.ZodOptional>; limit: z.ZodOptional; offset: z.ZodOptional; skip: z.ZodOptional; }, z.core.$strip>>]>>; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; }; }; }; readonly CREATE: { readonly method: "post"; readonly path: "/"; readonly description: "Create new record"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { readonly body: { description: string; content: { 'application/json': { schema: TAnyObjectSchema; }; }; required: boolean | undefined; }; readonly headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; }; }; }; readonly UPDATE_BY_ID: { readonly method: "patch"; readonly path: "/{id}"; readonly description: "Partial update record by ID"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { readonly params: z.ZodObject<{ id: z.ZodString; }, z.core.$strip> | TAnyObjectSchema | z.ZodObject<{ id: z.ZodCoercedNumber; }, z.core.$strip>; readonly body: { description: string; content: { 'application/json': { schema: TAnyObjectSchema; }; }; required: boolean | undefined; }; readonly headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; }; }; }; readonly UPDATE_BY: { readonly method: "patch"; readonly path: "/"; readonly description: "Bulk update records matching where condition"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { readonly query: TAnyObjectSchema | z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; }, z.core.$strip>; readonly body: { description: string; content: { 'application/json': { schema: TAnyObjectSchema; }; }; required: boolean | undefined; }; readonly headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>; }; }; required: boolean | undefined; }; }; }; readonly DELETE_BY_ID: { readonly method: "delete"; readonly path: "/{id}"; readonly description: "Delete record by ID (irreversible)"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { params: z.ZodObject<{ id: z.ZodString; }, z.core.$strip> | TAnyObjectSchema | z.ZodObject<{ id: z.ZodCoercedNumber; }, z.core.$strip>; headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: SelectSchema; }, z.core.$strip>, SelectSchema]>; }; }; required: boolean | undefined; }; }; }; readonly DELETE_BY: { readonly method: "delete"; readonly path: "/"; readonly description: "Bulk delete records matching where condition (irreversible)"; readonly authenticate: { strategies?: TAuthStrategy[]; mode?: TAuthMode; }; readonly authorize: IAuthorizationSpec | IAuthorizationSpec[] | undefined; readonly request: { readonly headers: TAnyObjectSchema | z.ZodObject<{ "x-request-id": z.ZodOptional; "x-request-channel": z.ZodOptional; "x-device-info": z.ZodOptional; "x-request-count": z.ZodOptional; }, z.core.$strip>; readonly body?: { description: string; content: { 'application/json': { schema: TAnyObjectSchema; }; }; required: boolean | undefined; } | undefined; readonly query: TAnyObjectSchema | z.ZodObject<{ where: z.ZodOptional>, z.ZodPipe>, z.ZodType>>]>>; }, z.core.$strip>; }; readonly responses: { '4XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; '5XX': { description: string; content: { 'application/json': { schema: z.ZodObject<{ statusCode: z.ZodOptional; message: z.ZodString; normalized: z.ZodOptional; }, z.core.$strip>>; extra: z.ZodOptional>; requestId: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; }; }; required: boolean | undefined; }; 200: { description: string; content: { 'application/json': { schema: z.ZodUnion; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>; }; }; required: boolean | undefined; } | { headers: import("../common").TResponseHeaders; description: string; content: { 'application/json': { schema: z.ZodUnion; data: z.ZodArray; }, z.core.$strip>, z.ZodArray]>; }; }; required: boolean | undefined; }; }; }; }; } export declare const conditionalCountResponse: typeof RouteConfigResolver.conditionalCountResponse; export declare const resolveCountConfig: typeof RouteConfigResolver.resolveCountConfig; export declare const resolveFindConfig: typeof RouteConfigResolver.resolveFindConfig; export declare const resolveFindByIdConfig: typeof RouteConfigResolver.resolveFindByIdConfig; export declare const resolveFindOneConfig: typeof RouteConfigResolver.resolveFindOneConfig; export declare const resolveCreateConfig: typeof RouteConfigResolver.resolveCreateConfig; export declare const defineControllerRouteConfigs: typeof RouteConfigResolver.defineControllerRouteConfigs; export {}; //# sourceMappingURL=definition.d.ts.map