import { DirectoryStep, FileWriteConfig, HtmlLinks, HtmlMeta, OutputFunc } from "ssg-api";
import { HtmlRR0Context } from "RR0Context.js";
import { Book } from "./Book.js";
/**
* Scan directories for book information, then populates a template with collected data.
*/
export declare class BookDirectoryStep extends DirectoryStep {
protected outputFunc: OutputFunc;
protected bookMeta: Map;
protected bookLinks: Map;
constructor(rootDirs: string[], templateFileName: string, outputFunc: OutputFunc, config: FileWriteConfig, name: string, bookMeta: Map, bookLinks: Map);
static create(outputFunc: OutputFunc, config: FileWriteConfig, bookMeta: Map, bookLinks: Map): Promise;
protected processDirs(context: HtmlRR0Context, dirNames: string[]): Promise;
protected scan(context: HtmlRR0Context, dirNames: string[]): Book[];
/**
* Convert an array of Case[] to an HTML unordered list.
*
* @param books
*/
protected toList(books: Book[]): string;
/**
* Convert a Case object to an HTML list item.
*
* @param dirBook
*/
protected toListItem(dirBook: Book): string;
protected tocAll(context: HtmlRR0Context, books: Book[]): Promise;
protected toc(context: HtmlRR0Context, book: Book): Promise;
}