import { FileWriteConfig, OutputFunc } from "ssg-api";
import { PeopleDirectoryStep } from "./PeopleDirectoryStep.js";
import { PeopleHtmlRenderer } from "./PeopleHtmlRenderer.js";
import { PeopleService } from "@rr0/data";
export type PeopleDirectoryStepOptions = {
    root: string;
    scientists?: string;
    ufologists?: string;
    ufoWitnesses?: string;
    astronomers?: string;
    contactees?: string;
    pilots?: string;
    military?: string;
    softwareEngineers?: string;
    politicians?: string;
    rulers?: string;
};
/**
 * Create directory steps for different types of people.
 */
export declare class PeopleDirectoryStepFactory {
    protected outputFunc: OutputFunc;
    protected config: FileWriteConfig;
    protected service: PeopleService;
    protected renderer: PeopleHtmlRenderer;
    protected excludedDirs: string[];
    constructor(outputFunc: OutputFunc, config: FileWriteConfig, service: PeopleService, renderer: PeopleHtmlRenderer, excludedDirs: string[]);
    create(options: PeopleDirectoryStepOptions): Promise<PeopleDirectoryStep[]>;
    /**
     * Create steps to generate directory pages for people with name starting with every first letter.
     */
    createLetters(): Promise<PeopleDirectoryStep[]>;
    createAll(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createMilitary(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createPoliticians(dirs: string[], templateFileName: string, rulersTemplateFileName?: string): PeopleDirectoryStep[];
    createSoftwareEngineers(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createPilots(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createContactees(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createAstronomers(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createUfoWitnesses(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createUfologists(dirs: string[], templateFileName: string): PeopleDirectoryStep;
    createScientists(dirs: string[], templateFileName: string): PeopleDirectoryStep;
}
