import type { Chunk } from "@effect-ts/core/Collections/Immutable/Chunk";
import type { NonEmptyArray } from "@effect-ts/core/Collections/Immutable/NonEmptyArray";
import * as T from "@effect-ts/core/Effect";
import * as L from "@effect-ts/core/Effect/Layer";
import type { Has } from "@effect-ts/core/Has";
import type { _A } from "@effect-ts/core/Utils";
import type { FigFont } from "../FigFont/index.js";
import type { FigletException } from "../FigletException/index.js";
import type { Figure } from "../Figure/index.js";
import { FontFileReader } from "../FontFileReader/index.js";
import type { InternalFont } from "../Internal/index.js";
import type { RenderOptions } from "../RenderOptions/index.js";
export declare const FigletClientId: unique symbol;
export declare type FigletClientId = typeof FigletClientId;
export declare const makeFigletClient: T.Effect<Has<FontFileReader>, never, {
    readonly defaultFont: "standard";
    readonly defaultMaxWidth: number;
    readonly internalFonts: T.Effect<unknown, FigletException, Chunk<InternalFont>>;
    readonly loadFont: (path: string) => T.IO<NonEmptyArray<FigletException>, FigFont>;
    readonly loadFontInternal: (name: InternalFont) => T.Effect<unknown, NonEmptyArray<FigletException>, FigFont>;
}>;
export interface FigletClient extends _A<typeof makeFigletClient> {
}
export declare const FigletClient: import("@effect-ts/system/Has").Tag<FigletClient>;
export declare type HasFigletClient = Has<FigletClient>;
export declare const LiveFigletClient: L.Layer<Has<FontFileReader>, never, Has<FigletClient>>;
export declare const defaultFont: T.Effect<Has<FigletClient>, never, "standard">, defaultMaxWidth: T.Effect<Has<FigletClient>, never, number>, internalFonts: T.Effect<Has<FigletClient>, FigletException, Chunk<InternalFont>>, loadFont: (path: string) => T.Effect<Has<FigletClient>, NonEmptyArray<FigletException>, FigFont>, loadFontInternal: (name: InternalFont) => T.Effect<Has<FigletClient>, NonEmptyArray<FigletException>, FigFont>;
/**
 * Render the specified text to a `Figure` using the provided `RenderOptions`.
 */
export declare function renderToFigure(text: string, options: RenderOptions): Figure;
/**
 * Render the specified text to a string using the provided `RenderOptions`.
 */
export declare function renderToString(text: string, options: RenderOptions): string;
//# sourceMappingURL=index.d.ts.map