/**
 * @license
 * Copyright 2026 Steven Roussey <sroussey@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */
import type { RawPixelBuffer } from "@workglow/util/media";
export declare const IMAGE_TEXT_ANCHOR_POSITIONS: readonly ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"];
export type ImageTextAnchorPosition = (typeof IMAGE_TEXT_ANCHOR_POSITIONS)[number];
export interface ImageTextRenderColor {
    readonly r: number;
    readonly g: number;
    readonly b: number;
    readonly a?: number;
}
export interface ImageTextRenderParams {
    readonly text: string;
    readonly font: string;
    readonly fontSize: number;
    readonly bold: boolean;
    readonly italic: boolean;
    readonly color: ImageTextRenderColor;
    readonly width: number;
    readonly height: number;
    readonly position: ImageTextAnchorPosition;
}
export interface ImageTextRenderer {
    renderToRgba(params: ImageTextRenderParams): Promise<RawPixelBuffer>;
}
export declare const IMAGE_TEXT_RENDERER: import("@workglow/util").ServiceToken<ImageTextRenderer>;
export declare const IMAGE_TEXT_RENDER_PADDING = 2;
export declare const IMAGE_TEXT_RENDER_LINE_HEIGHT_FACTOR = 1.25;
export declare function parseImageTextAnchor(position: ImageTextAnchorPosition): {
    readonly row: "top" | "middle" | "bottom";
    readonly col: "left" | "center" | "right";
};
export declare function escapeImageTextXmlText(value: string): string;
export declare function escapeImageTextXmlAttr(value: string): string;
export declare function imageTextRgbaFillStyle(color: ImageTextRenderColor): string;
export declare function registerImageTextRenderer(renderer: ImageTextRenderer): void;
export declare function getImageTextRenderer(): ImageTextRenderer;
export declare function renderImageTextToRgba(params: ImageTextRenderParams): Promise<RawPixelBuffer>;
//# sourceMappingURL=imageTextRender.d.ts.map