/**
 * @module Resource
 * @description 静态资源对象
 */
import fs from 'fs';
import { ServerResponse } from 'http';
import { Readable } from 'stream';
export interface InputStream extends Readable {
    close: () => void;
}
export default class Resource {
    readonly stat: fs.Stats;
    /**
     * 获取当前文件明
     */
    readonly url: string;
    /**
     * 当前资源内容长度
     */
    get contentLength(): number;
    /**
     * 最后修改时间
     */
    get lastModified(): number;
    /**
     * 获取当前文件的mediaType
     */
    get mediaType(): import("../..").MediaType;
    get isReadable(): boolean;
    constructor(filename: string);
    createRelative(relativePath: string): Resource;
    /**
     * 获取当前资源的读取流
     */
    getInputStream(): InputStream;
    /**
     * 获取当前资源，指定位置的读取流
     * @param start
     * @param end
     */
    getInputRangeStream(start: number, end: number): InputStream;
    /**
     * 将资源文件附加到response
     * @param response 原始返回对象
     * @param start 如果是http-ragen则设置开始位置
     * @param end  如果是http-ragen则设置结束位置
     * @returns
     */
    pipe(response: ServerResponse, start?: number, end?: number): Promise<unknown>;
}
