import { IHttpContext } from "../http/context.js"; import { HttpRouter } from '../index.js'; import { IRouterOptions } from '../http/router/contracts.js'; export interface IFileinfo { size: number; modified: Date; checksome: string; mime: string; } export interface IHttpAssetOpts { root: string; files: Array; prefix: string; cache: boolean; debug: boolean; allowRange?: boolean; } export declare class HttpAsset { readonly opts: IHttpAssetOpts; store: Record; maxAgeSeconds: number; constructor(opts: IHttpAssetOpts); setup(): Promise; routes(options?: Partial): HttpRouter; /** * caution: returns ref to object * @param file * @returns */ info(file: string): Promise; streamOptions(ctx: IHttpContext): any; /** * @unsafe does not normalize paths * @param ctx * @param file * @param head * @returns */ file(ctx: IHttpContext, file: IHttpAssetFile, head?: boolean): Promise; css(ctx: IHttpContext, file: string): Promise; js(ctx: IHttpContext, file: string): Promise; image(ctx: IHttpContext, file: string, type?: string): Promise; hasAsset(relativePath: string): Promise; } export interface IHttpAssetFile { path: string; mime?: string; } export interface IHttpAssetMiddlewareOpts { root: string; prefix?: string; index?: string; debug: boolean; cache: boolean; maxAgeSeconds: number; } export declare class HttpAssetMiddleware { readonly opts: IHttpAssetMiddlewareOpts; store: Record; maxAgeSeconds: number; constructor(opts: IHttpAssetMiddlewareOpts); static middleware(opts: IHttpAssetMiddlewareOpts): (ctx: IHttpContext, next: any) => Promise; get prefix(): string; handle(ctx: IHttpContext, next: any): Promise; /** * caution: returns ref to object * @param file * @returns */ info(file: string): Promise; streamOptions(ctx: IHttpContext): any; file(ctx: IHttpContext, file: IHttpAssetFile, head?: boolean): Promise; }