import type { HttpHandlerInput } from '../HttpHandler';
import { HttpHandler } from '../HttpHandler';
/**
 * Used to link file paths with relative URLs.
 * By using a separate class instead of a key/value map it is easier to replace values in Components.js.
 */
export declare class StaticAssetEntry {
    readonly relativeUrl: string;
    readonly filePath: string;
    constructor(relativeUrl: string, filePath: string);
}
/**
 * Handler that serves static resources on specific paths.
 * Relative file paths are assumed to be relative to the current working directory.
 * Relative file paths can be preceded by `@css:`, e.g. `@css:foo/bar`,
 * in case they need to be relative to the module root.
 * File paths ending in a slash assume the target is a folder and map all of its contents.
 */
export declare class StaticAssetHandler extends HttpHandler {
    private readonly mappings;
    private readonly pathMatcher;
    private readonly expires;
    private readonly logger;
    /**
     * Creates a handler for the provided static resources.
     * @param assets - A list of {@link StaticAssetEntry}.
     * @param baseUrl - The base URL of the server.
     * @param options - Specific options.
     * @param options.expires - Cache expiration time in seconds.
     */
    constructor(assets: StaticAssetEntry[], baseUrl: string, options?: {
        expires?: number;
    });
    /**
     * Creates a regular expression that matches the URL paths.
     */
    private createPathMatcher;
    /**
     * Obtains the file path corresponding to the asset URL
     */
    private getFilePath;
    canHandle({ request }: HttpHandlerInput): Promise<void>;
    handle({ request, response }: HttpHandlerInput): Promise<void>;
    private getCacheHeaders;
}
