import { DirectoryStep, FileWriteConfig, OutputFunc } from "ssg-api";
import { HtmlRR0Context, RR0Context } from "./RR0Context.js";
/**
 * Builds a directory index.
 */
export declare class IndexDirectoryStep extends DirectoryStep {
    protected outputFunc: OutputFunc;
    /**
     *
     * @param rootDirs The directories where UFO cases info can be found.
     * @param excludedDirs The directories to exclude from the UFO case directory search.
     * @param templateFileName The template of the directory page to build.
     * @param outputFunc
     * @param config
     */
    constructor(rootDirs: string[], excludedDirs: string[], templateFileName: string, outputFunc: OutputFunc, config: FileWriteConfig);
    /**
     * Convert an array of Case[] to an <ul> HTML unordered list.
     *
     * @param context
     * @param cases
     */
    protected toList(context: HtmlRR0Context, cases: any[]): HTMLUListElement;
    /**
     * Convert a Case object to an HTML list item.
     *
     * @param context
     * @param dirCase
     */
    protected toListItem(context: HtmlRR0Context, dirCase: any): HTMLLIElement;
    protected processDirs(context: HtmlRR0Context, dirNames: string[]): Promise<void>;
    /**
     * Read case JSON files contents and instantiate them as Case objects.
     *
     * @param context
     * @param dirNames The directories to look for case.json files.
     */
    protected scan(context: RR0Context, dirNames: string[]): Promise<any[]>;
}
