import { Case } from "@effect-ts/core/Case";
import type { Chunk } from "@effect-ts/core/Collections/Immutable/Chunk";
import * as Set from "@effect-ts/core/Collections/Immutable/Set";
import type { Option } from "@effect-ts/core/Option";
import type { FigHeader } from "../FigHeader/index.js";
import type { FigletResult } from "../FigletException/index.js";
import { FigFont } from "./definition.js";
export declare class CharBuilderState extends Case<{
    readonly name: string;
    readonly lines: Chunk<string>;
    readonly comment: Option<string>;
    readonly position: number;
}> {
}
export declare class FontBuilderState extends Case<{
    readonly file: string;
    readonly hash: string;
    readonly header: Option<FigHeader>;
    readonly commentLines: Chunk<string>;
    readonly loadedNames: Set.Set<string>;
    readonly loadedChars: Chunk<CharBuilderState>;
    readonly loadedCharLines: Chunk<string>;
    readonly processTaggedFonts: boolean;
}> {
}
/**
 * The list of all required characters that all `FigFont`s must define.
 */
export declare const requiredCharacters: Chunk<string>;
/**
 * Processes a line calling the appropriate action based on the current state.
 */
export declare function processLine(state: FontBuilderState, line: string, index: number): FigletResult<FontBuilderState>;
/**
 * Build the `FigFont` by parsing the `FontBuilderState`.
 */
export declare function buildFont(fontState: FontBuilderState): FigletResult<FigFont>;
//# sourceMappingURL=builder.d.ts.map