import { Case } from "@effect-ts/core/Case";
import type { Chunk } from "@effect-ts/core/Collections/Immutable/Chunk";
import type { Show } from "@effect-ts/core/Show";
import type { FigCharacter } from "../FigCharacter/index.js";
import type { FigFont } from "../FigFont/index.js";
import type { SubColumns } from "../SubColumns/index.js";
import type { SubLines } from "../SubLines/index.js";
/**
 * A `Figure` is a string rendered using a specific `FigFont`, and is made up
 * of multiple `FigCharacter`s.
 *
 * A `Figure` cannot be instantiated directly. Instead, one must use the
 * constructor definitions to perform validation of the header.
 */
export declare class Figure extends Case<{
    readonly font: FigFont;
    readonly value: string;
    readonly columns: Chunk<SubColumns>;
}> {
}
/**
 * Creates an empty `Figure` using the specified `FigFont`.
 *
 * @param font The `FigFont` that the `Figure` uses.
 * @returns An empty `Figure` that uses the given `FigFont`.
 */
export declare function empty(font: FigFont): Figure;
/**
 * Creates a `Figure` that contains a single character given as `FigCharacter`.
 *
 * @param char The first character of the `Figure`.
 * @param font The `FigFont` that the `Figure` uses.
 * @returns A `Figure` containing one character that uses the given `FigFont`.
 */
export declare function fromFigCharacter(char: FigCharacter, font: FigFont): Figure;
/**
 * Creates a `Figure` that contains a single character.
 *
 * @param char The first character of the `Figure`.
 * @param font The `FigFont` that the `Figure` uses.
 * @returns A `Figure` containing one character that uses the given `FigFont`.
 */
export declare function fromCharacter(char: string, font: FigFont): Figure;
/**
 * The `Figure` represented as a collection of lines.
 */
export declare function lines(self: Figure): Chunk<SubLines>;
/**
 * The `Figure` represented as a list of lines stripped of their hardblanks.
 */
export declare function cleanLines(self: Figure): Chunk<SubLines>;
/**
 * The columns representing the rendered `Figure` stripped of their hardblanks.
 */
export declare function cleanColumns(self: Figure): Chunk<SubColumns>;
/**
 * Gets the maximum width of the `Figure`.
 */
export declare function width(self: Figure): number;
export declare const showFigure: Show<Figure>;
//# sourceMappingURL=index.d.ts.map