import { ExpressApplicationMiddleware, ExpressMiddleware } from './express'; import { LogLevel } from '../constants'; import { Request, Response } from 'express'; export interface SakizOptions { appEntry?: string; assetsFolder?: string; baseUrl?: string; browserslist?: string[]; devDotenvPath?: string; distFolder?: string; domElementIdApp?: string; envVars?: string[]; htmlEntry?: string; logLevel?: LogLevel; optimizationOptionsPath?: string; reportsFolder?: string; serverOptionsPath?: string; shouldImportBabelPolyfill?: boolean; shouldWebpackOutputStats?: boolean; } export interface SakizServerOptions { baseUrl?: string; entry?: string; host?: string; middlewares?: SakizServerMiddlewares; name?: string; port?: number; shouldServerRender?: boolean; staticCacheOptions?: SakizServerStaticCacheOptions; staticFolder?: string[]; } export interface SakizServerMiddlewares { post?: ExpressApplicationMiddleware[]; pre?: ExpressApplicationMiddleware[]; } export declare type SakizServerStaticCacheHandler = (res: Response, path: string, stat: any) => void; export interface SakizServerStaticCacheOptions { defaultMaxAge?: number; handler?: SakizServerStaticCacheHandler; isFolderUsingTrailingSlash?: boolean; shouldGenerateETag?: boolean; shouldSetLastModified?: boolean; } export declare type AppRenderer = (path: string, serverRenderedHtml: string, req?: Request, res?: Response) => Promise; export interface AppRendererReturn { redirect?: string; renderedAppHtml: string; renderedIndexHtml?: string; status: number; styleTags: string | string[]; } export interface CreateServerInput { appMiddleware?: ExpressMiddleware; isDev?: boolean; port?: number; } export interface GetServerOptionsInput { appMiddleware?: ExpressMiddleware; isMergedWithDefault?: boolean; port?: number; } export declare type SakizScript = 'analyze' | 'build' | 'dev' | 'format' | 'lint' | 'start' | 'static';