import { Datasource } from "./Datasource.js";
import { HtmlSsgContext } from "ssg-api";
import { FileContents } from "@javarome/fileutil";
export declare class FileSource {
    protected encoding: BufferEncoding;
    protected static readonly specialChars: RegExp;
    constructor(encoding: BufferEncoding);
    /**
     * Get the file name to read/write data from an external datasource.
     *
     * @param context
     * @param datasource
     * @protected
     */
    fileName(context: HtmlSsgContext, datasource: Datasource<any>): string;
    read(context: HtmlSsgContext, datasource: Datasource<any>): Promise<FileContents>;
    writeContents(context: HtmlSsgContext, contents: string | NodeJS.ArrayBufferView, datasource: Datasource<any>): string;
}
