import { Express, Handler } from 'express';
import { Connect } from 'vite';
import { Callback, RouteInfo } from 'vite-plugin-api-routes/handler';

type ViteServerHook = (server: Connect.Server, viteServer: any) => void;
type ServerHook = (server: Express) => void;
type HandlerHook = (handler: Handler) => void;
type CallbackHook = (callback: Callback, route: RouteInfo) => Callback;
type StatusHook = (server: Express, status: any) => void;
declare const viteServerBefore: ViteServerHook;
declare const viteServerAfter: ViteServerHook;
declare const serverBefore: ServerHook;
declare const serverAfter: ServerHook;
declare const handlerBefore: HandlerHook;
declare const handlerAfter: HandlerHook;
declare const callbackBefore: CallbackHook;
declare const serverListening: StatusHook;
declare const serverError: StatusHook;

export { type CallbackHook, type HandlerHook, type ServerHook, type StatusHook, type ViteServerHook, callbackBefore, handlerAfter, handlerBefore, serverAfter, serverBefore, serverError, serverListening, viteServerAfter, viteServerBefore };
