import type { Chunk } from "@effect-ts/core/Collections/Immutable/Chunk";
import type { Equal } from "@effect-ts/core/Equal";
import type { FigletResult } from "../../FigletException/index.js";
/**
 * The `FullLayout` parameter contained within a `FigHeader`.
 *
 * The `value` of a `FullLayout` is the numeric value of the `FullLayout`
 * contained in the Figlet font header.
 */
export declare type FullLayout = EqualCharacterHorizontalSmushing | UnderscoreHorizontalSmushing | HierarchyHorizontalSmushing | OppositePairHorizontalSmushing | BigXHorizontalSmushing | HardblankHorizontalSmushing | HorizontalFitting | HorizontalSmushing | EqualCharacterVerticalSmushing | UnderscoreVerticalSmushing | HierarchyVerticalSmushing | HorizontalLineVerticalSmushing | VerticalLineSupersmushing | VerticalFitting | VerticalSmushing;
export interface EqualCharacterHorizontalSmushing {
    readonly _tag: "EqualCharacterHorizontalSmushing";
    readonly value: 1;
}
export interface UnderscoreHorizontalSmushing {
    readonly _tag: "UnderscoreHorizontalSmushing";
    readonly value: 2;
}
export interface HierarchyHorizontalSmushing {
    readonly _tag: "HierarchyHorizontalSmushing";
    readonly value: 4;
}
export interface OppositePairHorizontalSmushing {
    readonly _tag: "OppositePairHorizontalSmushing";
    readonly value: 8;
}
export interface BigXHorizontalSmushing {
    readonly _tag: "BigXHorizontalSmushing";
    readonly value: 16;
}
export interface HardblankHorizontalSmushing {
    readonly _tag: "HardblankHorizontalSmushing";
    readonly value: 32;
}
export interface HorizontalFitting {
    readonly _tag: "HorizontalFitting";
    readonly value: 64;
}
export interface HorizontalSmushing {
    readonly _tag: "HorizontalSmushing";
    readonly value: 128;
}
export interface EqualCharacterVerticalSmushing {
    readonly _tag: "EqualCharacterVerticalSmushing";
    readonly value: 256;
}
export interface UnderscoreVerticalSmushing {
    readonly _tag: "UnderscoreVerticalSmushing";
    readonly value: 512;
}
export interface HierarchyVerticalSmushing {
    readonly _tag: "HierarchyVerticalSmushing";
    readonly value: 1024;
}
export interface HorizontalLineVerticalSmushing {
    readonly _tag: "HorizontalLineVerticalSmushing";
    readonly value: 2048;
}
export interface VerticalLineSupersmushing {
    readonly _tag: "VerticalLineSupersmushing";
    readonly value: 4096;
}
export interface VerticalFitting {
    readonly _tag: "VerticalFitting";
    readonly value: 8192;
}
export interface VerticalSmushing {
    readonly _tag: "VerticalSmushing";
    readonly value: 16384;
}
export declare const EqualCharacterHorizontalSmushing: FullLayout;
export declare const UnderscoreHorizontalSmushing: FullLayout;
export declare const HierarchyHorizontalSmushing: FullLayout;
export declare const OppositePairHorizontalSmushing: FullLayout;
export declare const BigXHorizontalSmushing: FullLayout;
export declare const HardblankHorizontalSmushing: FullLayout;
export declare const HorizontalFitting: FullLayout;
export declare const HorizontalSmushing: FullLayout;
export declare const EqualCharacterVerticalSmushing: FullLayout;
export declare const UnderscoreVerticalSmushing: FullLayout;
export declare const HierarchyVerticalSmushing: FullLayout;
export declare const HorizontalLineVerticalSmushing: FullLayout;
export declare const VerticalLineSupersmushing: FullLayout;
export declare const VerticalFitting: FullLayout;
export declare const VerticalSmushing: FullLayout;
export declare const values: Chunk<EqualCharacterHorizontalSmushing | UnderscoreHorizontalSmushing | HierarchyHorizontalSmushing | OppositePairHorizontalSmushing | BigXHorizontalSmushing | HardblankHorizontalSmushing | HorizontalFitting | HorizontalSmushing | EqualCharacterVerticalSmushing | UnderscoreVerticalSmushing | HierarchyVerticalSmushing | HorizontalLineVerticalSmushing | VerticalLineSupersmushing | VerticalFitting | VerticalSmushing>;
/**
 * Obtains the list of requested settings starting from the provided value.
 *
 * @param requestedSettings The number representing the `FullLayout`
 * @return The `FullLayout` that corresponds to the given numeric value.
 */
export declare function fromValue(requestedSettings: number): FigletResult<Chunk<FullLayout>>;
/**
 * The settings that correspond to horizontal smushing.
 */
export declare const horizontalSmushingRules: Chunk<FullLayout>;
/**
 * The settings that correspond to vertical smushing.
 */
export declare const verticalSmushingRules: Chunk<FullLayout>;
export declare const equalFullLayout: Equal<FullLayout>;
//# sourceMappingURL=index.d.ts.map