import { z } from 'zod'; import serveHandler from 'serve-handler'; import { Express } from 'express'; import type { Filter, Options } from 'http-proxy-middleware'; import { Middleware } from './services/express'; export declare const defaultConfigFile = "serve-di.config.js"; export declare const defaultConfigFileJson = "serve-di.config.json"; export type Rewrite = { source: string; destination: string; }; export type ServeHandlerConfig = Parameters[2]; export type Config = { port?: number; validIps?: Array; auth?: Array<{ username: string; password: string; }>; proxies?: Record<`/${string}`, string | Filter | Options>; serve?: ServeHandlerConfig; logs?: { config?: boolean; url?: boolean; }; middlewares?: Array; custom?: (app: Express, config: Config) => void; }; export declare const JsonConfigSchema: z.ZodObject<{ $schema: z.ZodOptional; port: z.ZodOptional; validIps: z.ZodOptional>; auth: z.ZodOptional, "many">>; proxies: z.ZodOptional>; serve: z.ZodOptional, "many">>; redirects: z.ZodOptional; }, "strip", z.ZodTypeAny, { type?: number | undefined; source: string; destination: string; }, { type?: number | undefined; source: string; destination: string; }>, "many">>; headers: z.ZodOptional, "many">; }, "strip", z.ZodTypeAny, { source: string; headers: { value: string; key: string; }[]; }, { source: string; headers: { value: string; key: string; }[]; }>, "many">>; directoryListing: z.ZodOptional]>>; unlisted: z.ZodOptional>; trailingSlash: z.ZodOptional; renderSingle: z.ZodOptional; symlinks: z.ZodOptional; etag: z.ZodBoolean; }, "strip", z.ZodTypeAny, { rewrites?: { source: string; destination: string; }[] | undefined; redirects?: { type?: number | undefined; source: string; destination: string; }[] | undefined; headers?: { source: string; headers: { value: string; key: string; }[]; }[] | undefined; directoryListing?: boolean | string[] | undefined; unlisted?: string[] | undefined; trailingSlash?: boolean | undefined; renderSingle?: boolean | undefined; symlinks?: boolean | undefined; public: string; cleanUrls: boolean; etag: boolean; }, { rewrites?: { source: string; destination: string; }[] | undefined; redirects?: { type?: number | undefined; source: string; destination: string; }[] | undefined; headers?: { source: string; headers: { value: string; key: string; }[]; }[] | undefined; directoryListing?: boolean | string[] | undefined; unlisted?: string[] | undefined; trailingSlash?: boolean | undefined; renderSingle?: boolean | undefined; symlinks?: boolean | undefined; public: string; cleanUrls: boolean; etag: boolean; }>>; logs: z.ZodOptional; config: z.ZodOptional; }, "strip", z.ZodTypeAny, { url?: boolean | undefined; config?: boolean | undefined; }, { url?: boolean | undefined; config?: boolean | undefined; }>>; }, "strict", z.ZodTypeAny, { $schema?: string | undefined; port?: number | undefined; validIps?: string[] | undefined; auth?: { username: string; password: string; }[] | undefined; proxies?: { [x: string]: string; } | undefined; serve?: { rewrites?: { source: string; destination: string; }[] | undefined; redirects?: { type?: number | undefined; source: string; destination: string; }[] | undefined; headers?: { source: string; headers: { value: string; key: string; }[]; }[] | undefined; directoryListing?: boolean | string[] | undefined; unlisted?: string[] | undefined; trailingSlash?: boolean | undefined; renderSingle?: boolean | undefined; symlinks?: boolean | undefined; public: string; cleanUrls: boolean; etag: boolean; } | undefined; logs?: { url?: boolean | undefined; config?: boolean | undefined; } | undefined; }, { $schema?: string | undefined; port?: number | undefined; validIps?: string[] | undefined; auth?: { username: string; password: string; }[] | undefined; proxies?: { [x: string]: string; } | undefined; serve?: { rewrites?: { source: string; destination: string; }[] | undefined; redirects?: { type?: number | undefined; source: string; destination: string; }[] | undefined; headers?: { source: string; headers: { value: string; key: string; }[]; }[] | undefined; directoryListing?: boolean | string[] | undefined; unlisted?: string[] | undefined; trailingSlash?: boolean | undefined; renderSingle?: boolean | undefined; symlinks?: boolean | undefined; public: string; cleanUrls: boolean; etag: boolean; } | undefined; logs?: { url?: boolean | undefined; config?: boolean | undefined; } | undefined; }>; export type JsonConfig = z.infer;