import { D as ClientMethod, O as Method, f as Tag } from "./routing-BAxxZ1xA.js";
import { z } from "zod";
import { ReferenceObject, SchemaObjectValue, TagObject } from "openapi3-ts/oas32";
interface ReqResCommons {
  makeRef: (key: object | string, value: SchemaObjectValue | ReferenceObject, proposedName?: string) => ReferenceObject;
  path: string;
  method: ClientMethod;
  seenIds: Map<string, z.core.$ZodType>;
}
interface OpenAPIContext extends ReqResCommons {
  isResponse: boolean;
}
type Depicter = (
  zodCtx: {
    zodSchema: z.core.$ZodType;
    jsonSchema: z.core.JSONSchema.BaseSchema;
  },
  oasCtx: OpenAPIContext,
) => z.core.JSONSchema.BaseSchema | SchemaObjectValue;
/** @desc Using defaultIsHeader when returns null or undefined */
type IsHeader = (name: string, method: ClientMethod, path: string) => boolean | null | undefined;
type BrandHandling = Record<string | symbol, Depicter>;
interface TagDetails extends Pick<TagObject, "summary" | "description" | "externalDocs" | "kind"> {
  /** @desc shorthand for externalDocs.url */
  url?: string;
  parent?: Tag;
}
declare const depictTags: (tags: Partial<Record<Tag, string | TagDetails>>) => TagObject[];
/** @desc Ensures the summary string does not exceed the limit */
declare const trimSummary: (summary?: string, limit?: number) => string | undefined;
/** @desc An error related to the wrong Routing declaration */
declare class RoutingError extends Error {
  name: string;
  readonly cause: {
    method: Method;
    path: string;
  };
  constructor(message: string, method: Method, path: string);
}
/**
 * @desc An error related to the generating of the documentation
 * */
declare class DocumentationError extends Error {
  name: string;
  readonly cause: string;
  constructor(message: string, { method, path, isResponse }: Pick<OpenAPIContext, "path" | "method" | "isResponse">);
}
/** @desc An error related to the input and output schemas declaration */
declare class IOSchemaError extends Error {
  name: string;
}
/** @desc An error of validating the Endpoint handler's returns against the Endpoint output schema */
declare class OutputValidationError extends IOSchemaError {
  readonly cause: z.ZodError;
  name: string;
  constructor(cause: z.ZodError);
}
/** @desc An error of validating the input sources against the Middleware or Endpoint input schema */
declare class InputValidationError extends IOSchemaError {
  readonly cause: z.ZodError;
  name: string;
  constructor(cause: z.ZodError);
}
declare class MissingPeerError extends Error {
  name: string;
  constructor(module: string);
}
export {
  RoutingError as a,
  IsHeader as c,
  OutputValidationError as i,
  depictTags as l,
  InputValidationError as n,
  BrandHandling as o,
  MissingPeerError as r,
  Depicter as s,
  DocumentationError as t,
  trimSummary as u,
};
