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 type { FigHeader } from "../../FigHeader/index.js";
import type { FigletResult } from "../../FigletException/index.js";
import type { HorizontalSmushingRule } from "../HorizontalSmushingRule/index.js";
export declare type HorizontalLayout = FullWidth | HorizontalFitting | UniversalSmushing | ControlledSmushing;
export interface FullWidth {
    readonly _tag: "FullWidth";
}
export interface HorizontalFitting {
    readonly _tag: "HorizontalFitting";
}
export interface UniversalSmushing {
    readonly _tag: "UniversalSmushing";
}
export interface ControlledSmushing {
    readonly _tag: "ControlledSmushing";
    readonly rules: Chunk<HorizontalSmushingRule>;
}
export declare const FullWidth: HorizontalLayout;
export declare const HorizontalFitting: HorizontalLayout;
export declare const UniversalSmushing: HorizontalLayout;
export declare function ControlledSmushing(rules: Chunk<HorizontalSmushingRule>): HorizontalLayout;
/**
 * Interprets the header settings and returns the selected `HorizontalLayout`.
 * Contrary to the Figlet font standard, if the header defines "fullLayout"
 * and then defines "oldLayout", "oldLayout" is effectively ignored.
 *
 * @param header The `FigHeader` where the `HorizontalLayout` is defined.
 * @returns A `FigletResult` containing the `HorizontalLayout`, or a list of
 * `FigletException`s accumulated during parsing.
 */
export declare function fromHeader(header: FigHeader): FigletResult<HorizontalLayout>;
/**
 * Interprets the `fullLayout` header settings and returns the selected
 * `HorizontalLayout`.
 *
 * @param header The `FigHeader` where the `HorizontalLayout` is defined.
 * @returns A `FigletResult` containing the `HorizontalLayout`, or a list of
 * `FigletException`s accumulated during parsing.
 */
export declare function fromFullLayout(header: FigHeader): FigletResult<Option<HorizontalLayout>>;
/**
 * Interprets the `oldLayout` header settings and returns the selected
 * `HorizontalLayout`.
 *
 * @param header The `FigHeader` where the `HorizontalLayout` is defined.
 * @returns A `FigletResult` containing the `HorizontalLayout`, or a list of
 * `FigletException`s accumulated during parsing.
 */
export declare function fromOldLayout(header: FigHeader): FigletResult<HorizontalLayout>;
export declare const equalHorizontalLayout: Equal<HorizontalLayout>;
//# sourceMappingURL=index.d.ts.map