import express from 'express'; import { FastifyRequest, FastifyReply } from 'fastify'; import * as valleyed from 'valleyed'; import { PipeOutput } from 'valleyed'; import { E as EventBus } from './kafka-Cf-TUJgv.js'; import { A as AuthUser } from './overrides-6Hxg764S.js'; import { IncomingHttpHeaders } from 'node:http2'; import * as supertest_lib_agent from 'supertest/lib/agent'; import http from 'node:http'; import { FastifyCorsOptions } from '@fastify/cors'; import { CorsOptions } from 'cors'; import supertest from 'supertest'; import { d as RouteDef, j as RouterConfig, i as RouteConfig, l as RouteDefHandler, k as MergeRouteDefs, e as Route, a as Request, b as Response, f as MethodsEnum } from './requestError-C2PNWUrt.js'; import { Server as Server$1 } from 'socket.io'; import { E as Entity } from './core-BrkNSwvc.js'; declare abstract class BaseRequestAuthMethod { abstract parse(headers: IncomingHttpHeaders): Promise; abstract routeSecuritySchemeName(): string | null; static process(methods: BaseRequestAuthMethod[], headers: IncomingHttpHeaders): Promise; } declare const serverConfigPipe: () => valleyed.Pipe<({ port: number; cors: { origin: true | string[] | undefined; methods: ("get" | "delete" | "head" | "options" | "post" | "put" | "patch")[] | undefined; credentials: boolean | undefined; } | undefined; eventBus: EventBus | undefined; publicPath: string | undefined; healthPath: string | undefined; openapi: { docsVersion: string | undefined; docsBaseUrl: string[] | undefined; docsPath: string | undefined; } | undefined; requests: { log: boolean | undefined; rateLimit: { enabled: boolean | undefined; periodInMs: number | undefined; limit: number | undefined; } | undefined; slowdown: { enabled: boolean | undefined; periodInMs: number | undefined; delayAfter: number | undefined; delayInMs: number | undefined; } | undefined; } | undefined; socketsAuthMethods: BaseRequestAuthMethod[] | undefined; } & { type: "fastify"; }) | ({ port: number; cors: { origin: true | string[] | undefined; methods: ("get" | "delete" | "head" | "options" | "post" | "put" | "patch")[] | undefined; credentials: boolean | undefined; } | undefined; eventBus: EventBus | undefined; publicPath: string | undefined; healthPath: string | undefined; openapi: { docsVersion: string | undefined; docsBaseUrl: string[] | undefined; docsPath: string | undefined; } | undefined; requests: { log: boolean | undefined; rateLimit: { enabled: boolean | undefined; periodInMs: number | undefined; limit: number | undefined; } | undefined; slowdown: { enabled: boolean | undefined; periodInMs: number | undefined; delayAfter: number | undefined; delayInMs: number | undefined; } | undefined; } | undefined; socketsAuthMethods: BaseRequestAuthMethod[] | undefined; } & { type: "express"; }), ({ port: number; cors: { origin: true | string[] | undefined; methods: ("get" | "delete" | "head" | "options" | "post" | "put" | "patch")[] | undefined; credentials: boolean | undefined; } | undefined; eventBus: EventBus | undefined; publicPath: string | undefined; healthPath: string | undefined; openapi: { docsVersion: string; docsBaseUrl: string[]; docsPath: string; }; requests: { log: boolean; rateLimit: { enabled: boolean; periodInMs: number; limit: number; }; slowdown: { enabled: boolean; periodInMs: number; delayAfter: number; delayInMs: number; }; }; socketsAuthMethods: BaseRequestAuthMethod[]; } & { type: "fastify"; }) | ({ port: number; cors: { origin: true | string[] | undefined; methods: ("get" | "delete" | "head" | "options" | "post" | "put" | "patch")[] | undefined; credentials: boolean | undefined; } | undefined; eventBus: EventBus | undefined; publicPath: string | undefined; healthPath: string | undefined; openapi: { docsVersion: string; docsBaseUrl: string[]; docsPath: string; }; requests: { log: boolean; rateLimit: { enabled: boolean; periodInMs: number; limit: number; }; slowdown: { enabled: boolean; periodInMs: number; delayAfter: number; delayInMs: number; }; }; socketsAuthMethods: BaseRequestAuthMethod[]; } & { type: "express"; })>; type ServerConfig = PipeOutput>; declare class Router { #private; constructor(config?: RouterConfig); head: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; get: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; post: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; put: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; patch: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; delete: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; options: (path: string, config?: RouteConfig) => (handler: RouteDefHandler>) => Route>; nest(...routers: Router[]): void; get routes(): Route[]; } type OnJoinFn = (data: { channel: string; user: AuthUser | null; }, params: Record, query: Record) => Promise; type SocketCallbacks = { onConnect: (userId: string, socketId: string) => Promise; onDisconnect: (userId: string, socketId: string) => Promise; }; declare class SocketEmitter { #private; private config; readonly socketInstance: Server$1; constructor(socket: Server$1, config: ServerConfig); created(channels: string[], data: T, to: string | string[] | null): Promise; updated(channels: string[], { after, before }: { after: T; before: T; }, to: string | string[] | null): Promise; deleted(channels: string[], data: T, to: string | string[] | null): Promise; set connectionCallbacks(callbacks: SocketCallbacks); register(channel: string, onJoin: OnJoinFn): this; } declare abstract class Server { #private; private config; private implementations; socket: SocketEmitter; protected server: http.Server; protected get cors(): CorsOptions & FastifyCorsOptions; constructor(server: http.Server, config: ServerConfig, implementations: { parseRequest: (req: Req) => Promise>; handleResponse: (res: Res, response: Response) => Promise; registerRoute: (method: MethodsEnum, path: string, cb: (req: Req, res: Res) => Promise) => void; registerErrorHandler: (cb: (error: Error, req: Req, res: Res) => Promise) => void; registerNotFoundHandler: (cb: (req: Req, res: Res) => Promise) => void; start: (port: number) => Promise; }); addRouter(...routers: Router[]): void; addRoute(...routes: Route[]): void; test(): supertest_lib_agent; start(): Promise; } declare class ExpressServer extends Server { constructor(config: ServerConfig); } declare class FastifyServer extends Server { constructor(config: ServerConfig); } export { BaseRequestAuthMethod as B, ExpressServer as E, FastifyServer as F, type OnJoinFn as O, Router as R, Server as S, type ServerConfig as a, type SocketCallbacks as b, SocketEmitter as c, serverConfigPipe as s };