import { Case } from "@effect-ts/core/Case";
import type { Equal } from "@effect-ts/core/Equal";
import type { Option } from "@effect-ts/core/Option";
import type { FigHeader } from "../FigHeader/index.js";
import type { FigletResult } from "../FigletException/index.js";
import type { SubColumns } from "../SubColumns/index.js";
import type { SubLines } from "../SubLines/index.js";
/**
 * The definition of a single Figlet character, part of a FigFont, which is
 * composed of `SubLines`.
 *
 * A `FigCharacter` cannot be instantiated directly. Instead, one must use one
 * of the provided constructors to perform validation of the defining lines
 * of the character.
 */
export declare class FigCharacter extends Case<{
    /**
     * The identifier code of the `FigFont` where this `FigCharacter` belongs.
     */
    readonly fontId: string;
    /**
     * The name of the `FigCharacter`, which is the character that this
     * `FigCharacter` represents.
     */
    readonly name: string;
    /**
     * The strings composing the lines of the `FigCharacter`.
     */
    readonly lines: SubLines;
    /**
     * The character marking the end of a line in the definition of the
     * `FigCharacter`.
     */
    readonly endmark: string;
    /**
     * The maximum width that the `FigCharacter` can have.
     */
    readonly width: number;
    /**
     * The comment of the `FigCharacter` present only if it is not part of the
     * required characters.
     */
    readonly comment: Option<string>;
    /**
     * The line in the file where the `FigCharacter` is defined.
     */
    readonly position: number;
}> {
}
/**
 * Creates a `FigCharacter` and validates the height and width of the specified
 * `lines`.
 *
 * @param fontId The identifier code of the `FigFont` where this `FigCharacter`
 * belongs.
 * @param maxWidth The maximum width that the `FigCharacter` can have.
 * @param height The height of the `FigCharacter` that must be respected.
 * @param name The name of the `FigCharacter`, which is the character that this
 * `FigCharacter` represents.
 * @param lines The strings composing the lines of the `FigCharacter`.
 * @param comment The comment of the `FigCharacter` present only if it is not
 * part of the required characters.
 * @param position
 * @returns A `FigletResult` containing the new `FigCharacter`, or a list of
 * `FigletException`s that occurred during parsing.
 */
export declare function make(fontId: string, maxWidth: number, height: number, name: string, lines: SubLines, comment: Option<string>, position: number): FigletResult<FigCharacter>;
/**
 * Creates a `FigCharacter` using a `FigHeader` to validate the specified
 * `lines`.
 *
 * @param fontId The identifier code of the `FigFont` where this `FigCharacter`
 * belongs.
 * @param header The `FigHeader` that will be used to validate the `lines`.
 * @param name The name of the `FigCharacter`, which is the character that this
 * `FigCharacter` represents.
 * @param lines The strings composing the lines of the `FigCharacter`.
 * @param comment The comment of the `FigCharacter` present only if it is not
 * part of the required characters.
 * @param position
 * @returns A `FigletResult` containing the new `FigCharacter`, or a list of
 * `FigletException`s that occurred during parsing.
 */
export declare function makeFromHeader(fontId: string, header: FigHeader, name: string, lines: SubLines, comment: Option<string>, position: number): FigletResult<FigCharacter>;
/**
 * Converts a `FigCharacter` into `SubColumns`.
 */
export declare function columns(self: FigCharacter): SubColumns;
export declare const equalFigCharacter: Equal<FigCharacter>;
//# sourceMappingURL=index.d.ts.map