import type { FigFont } from "../../FigFont/index.js";
import type { InternalFont } from "../../Internal/index.js";
import type { HorizontalLayout } from "../../RenderOptions/HorizontalLayout/index.js";
import type { Justification } from "../../RenderOptions/Justification/index.js";
import type { PrintDirection } from "../../RenderOptions/PrintDirection/index.js";
/**
 * The `BuilderAction` data structure is used to defer the call of the
 * FigFont API at rendering time, to avoid dealing with calls that might fai,
 * such as loading a font, as well as the management of effects, while the user
 * is constructing the the font options.
 */
export declare type BuilderAction = DefaultFont | DefaultHorizontalLayout | DefaultJustification | DefaultMaxWidth | DefaultPrintDirection | LoadFont | LoadInternalFont | SetFont | SetHorizontalLayout | SetJustification | SetMaxWidth | SetPrintDirection | SetText;
declare const DefaultFont_base: import("@effect-ts/system/Case").CaseConstructorTagged<"DefaultFont", "_tag">;
export declare class DefaultFont extends DefaultFont_base<{}> {
    _actionTag: string;
}
declare const DefaultHorizontalLayout_base: import("@effect-ts/system/Case").CaseConstructorTagged<"DefaultHorizontalLayout", "_tag">;
export declare class DefaultHorizontalLayout extends DefaultHorizontalLayout_base<{}> {
    _actionTag: string;
}
declare const DefaultJustification_base: import("@effect-ts/system/Case").CaseConstructorTagged<"DefaultJustification", "_tag">;
export declare class DefaultJustification extends DefaultJustification_base<{}> {
    _actionTag: string;
}
declare const DefaultMaxWidth_base: import("@effect-ts/system/Case").CaseConstructorTagged<"DefaultMaxWidth", "_tag">;
export declare class DefaultMaxWidth extends DefaultMaxWidth_base<{}> {
    _actionTag: string;
}
declare const DefaultPrintDirection_base: import("@effect-ts/system/Case").CaseConstructorTagged<"DefaultPrintDirection", "_tag">;
export declare class DefaultPrintDirection extends DefaultPrintDirection_base<{}> {
    _actionTag: string;
}
declare const LoadFont_base: import("@effect-ts/system/Case").CaseConstructorTagged<"LoadFont", "_tag">;
export declare class LoadFont extends LoadFont_base<{
    readonly fontPath: string;
}> {
    _actionTag: string;
}
declare const LoadInternalFont_base: import("@effect-ts/system/Case").CaseConstructorTagged<"LoadInternalFont", "_tag">;
export declare class LoadInternalFont extends LoadInternalFont_base<{
    readonly font: InternalFont;
}> {
    _actionTag: string;
}
declare const SetFont_base: import("@effect-ts/system/Case").CaseConstructorTagged<"SetFont", "_tag">;
export declare class SetFont extends SetFont_base<{
    readonly font: FigFont;
}> {
    _actionTag: string;
}
declare const SetHorizontalLayout_base: import("@effect-ts/system/Case").CaseConstructorTagged<"SetHorizontalLayout", "_tag">;
export declare class SetHorizontalLayout extends SetHorizontalLayout_base<{
    readonly layout: HorizontalLayout;
}> {
    _actionTag: string;
}
declare const SetJustification_base: import("@effect-ts/system/Case").CaseConstructorTagged<"SetJustification", "_tag">;
export declare class SetJustification extends SetJustification_base<{
    readonly justification: Justification;
}> {
    _actionTag: string;
}
declare const SetMaxWidth_base: import("@effect-ts/system/Case").CaseConstructorTagged<"SetMaxWidth", "_tag">;
export declare class SetMaxWidth extends SetMaxWidth_base<{
    readonly maxWidth: number;
}> {
    _actionTag: string;
}
declare const SetPrintDirection_base: import("@effect-ts/system/Case").CaseConstructorTagged<"SetPrintDirection", "_tag">;
export declare class SetPrintDirection extends SetPrintDirection_base<{
    readonly direction: PrintDirection;
}> {
    _actionTag: string;
}
declare const SetText_base: import("@effect-ts/system/Case").CaseConstructorTagged<"SetText", "_tag">;
export declare class SetText extends SetText_base<{
    readonly text: string;
}> {
    _actionTag: string;
}
/**
 * Determines if two actions belong to the same group by using the action's
 * `ActionTag`.
 */
export declare function sameGroupAs_(a: BuilderAction, b: BuilderAction): boolean;
/**
 * Determines if two actions belong to the same group by using the action's
 * `ActionTag`.
 *
 * @ets_data_first sameGroupAs_
 */
export declare function sameGroupAs(b: BuilderAction): (a: BuilderAction) => boolean;
export {};
//# sourceMappingURL=index.d.ts.map