import { Case } from "@effect-ts/core/Case";
import type { Chunk } from "@effect-ts/core/Collections/Immutable/Chunk";
import type { Equal } from "@effect-ts/core/Equal";
import type { Option } from "@effect-ts/core/Option";
import * as PrintDirection from "../FigFont/PrintDirection/index.js";
import type { FigletResult } from "../FigletException/index.js";
import * as FullLayout from "./FullLayout/index.js";
import * as OldLayout from "./OldLayout/index.js";
/**
 * A Figlet font file header that contains raw configuration settings for the
 * Figlet font.
 *
 * A `FigHeader` cannot be instantiated directly. Instead, one must use the
 * constructor definitions to perform validation of the header.
 *
 * ```text
 * An example header line might look like the following:
 *
 *         flf2a$ 6 5 20 15 3 0 143 229    NOTE: The first five characters in
 *           |  | | | |  |  | |  |   |     the entire file must be "flf2a".
 *          /  /  | | |  |  | |  |   \
 * Signature  /  /  | |  |  | |   \   Codetag_Count
 *   Hardblank  /  /  |  |  |  \   Full_Layout*
 *        Height  /   |  |   \  Print_Direction
 *        Baseline   /    \   Comment_Lines
 *         Max_Length      Old_Layout*
 * ```
 * See http://www.jave.de/docs/figfont.txt for more information.
 */
export declare class FigHeader extends Case<{
    /**
     * The first five characters of the header, always `"flf2a"`.
     */
    readonly signature: string;
    /**
     * Which sub-character is used to represent hardblanks in the `FigCharacter`
     * data (usually `"$"`).
     */
    readonly hardblank: string;
    /**
     * The height of every `FigCharacter`.
     */
    readonly height: number;
    /**
     * The number of lines from the baseline of a `FigCharacter` to the top of
     * the tallest `FigCharacter`.
     */
    readonly baseline: number;
    /**
     * The maximum length of any line describing a `FigCharacter`.
     */
    readonly maxLength: number;
    /**
     * Describes information about the horizontal layout, but does not include
     * all of the information desired by the most recent Figlet font drivers.
     */
    readonly oldLayout: Chunk<OldLayout.OldLayout>;
    /**
     * How many lines of comments there are before the character definitions
     * begin.
     */
    readonly commentLines: number;
    /**
     * Which direction the font is to be printed by default.
     */
    readonly printDirection: Option<PrintDirection.PrintDirection>;
    /**
     * Describes ALL information about horizontal and vertical layout.
     */
    readonly fullLayout: Option<Chunk<FullLayout.FullLayout>>;
    /**
     * The number of code-tagged (non-required) `FigCharacter`s.
     */
    readonly codeTagCount: Option<number>;
}> {
}
/**
 * Creates a new `FigHeader` from a the string representing the Figlet font
 * header.
 *
 * @param line The string containing the full header of the Figlet font file.
 * @return A `FigletResult` containing the new `FigHeader`, or a list of the
 * errors that occurred during parsing of the header line.
 */
export declare function fromLine(line: string): FigletResult<FigHeader>;
export declare function toSingleLine(self: FigHeader): string;
export declare const equalFigHeader: Equal<FigHeader>;
//# sourceMappingURL=index.d.ts.map