/**
 * Shared utility functions for SVG shape rendering
 * Used by VectorShapeView and ShapeGroupView
 */
/**
 * Creates an SVG gradient element (linear or radial)
 * @param {Object} gradientData - The gradient configuration
 * @param {string} gradientData.gradientType - 'linear' or 'radial'
 * @param {Array} gradientData.stops - Array of gradient stops
 * @param {number} gradientData.angle - Angle for linear gradients (in degrees)
 * @param {string} gradientId - Unique identifier for the gradient
 * @returns {SVGGradientElement|null} The created gradient element or null
 */
export function createGradient(gradientData: {
    gradientType: string;
    stops: any[];
    angle: number;
}, gradientId: string): SVGGradientElement | null;
/**
 * Creates an SVG foreignObject with formatted text content.
 *
 * @param {Object} textContent - The text content with parts and formatting
 * @param {Array<Object>} textContent.parts - Array of text parts with formatting
 * @param {string} textContent.parts[].text - The text content
 * @param {Object} [textContent.parts[].formatting] - Formatting options (bold, italic, color, fontSize, fontFamily)
 * @param {'PAGE'|'NUMPAGES'|'SECTIONPAGES'} [textContent.parts[].fieldType] - Field type for dynamic content resolution
 * @param {string} [textContent.parts[].pageNumberFormat] - PAGE/SECTIONPAGES field-local value formatting override
 * @param {boolean} [textContent.parts[].isLineBreak] - Whether this part represents a line break
 * @param {boolean} [textContent.parts[].isEmptyParagraph] - Whether this line break follows an empty paragraph
 * @param {string} textAlign - Text alignment ('left', 'center', 'right', 'r')
 * @param {number} width - Width of the text area in pixels
 * @param {number} height - Height of the text area in pixels
 * @param {Object} [options={}] - Additional rendering options
 * @param {{ top: number, right: number, bottom: number, left: number }} [options.textInsets] - Text padding insets in pixels
 * @param {'top'|'center'|'bottom'} [options.textVerticalAlign] - Vertical alignment of text content
 * @param {number} [options.pageNumber] - Current page number for PAGE field resolution
 * @param {string} [options.pageNumberText] - Current formatted PAGE display text
 * @param {number} [options.pageNumberDisplayNumber] - Current numeric PAGE display value for local field formatting
 * @param {string} [options.pageNumberChapterText] - Current chapter prefix text for section-aware PAGE display
 * @param {string} [options.pageNumberChapterSeparator] - Current chapter separator for section-aware PAGE display
 * @param {number} [options.totalPages] - Total page count for NUMPAGES field resolution
 * @param {number} [options.sectionPageCount] - Current section page count for SECTIONPAGES field resolution
 * @returns {SVGForeignObjectElement} The created foreignObject element containing the formatted text
 */
export function createTextElement(textContent: {
    parts: Array<Object>;
}, textAlign: string, width: number, height: number, options?: {
    textInsets?: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    } | undefined;
    textVerticalAlign?: "top" | "center" | "bottom" | undefined;
    pageNumber?: number | undefined;
    pageNumberText?: string | undefined;
    pageNumberDisplayNumber?: number | undefined;
    pageNumberChapterText?: string | undefined;
    pageNumberChapterSeparator?: string | undefined;
    totalPages?: number | undefined;
    sectionPageCount?: number | undefined;
}): SVGForeignObjectElement;
/**
 * Applies a gradient to all filled elements in an SVG
 * @param {SVGElement} svg - The SVG element to apply gradient to
 * @param {Object} gradientData - The gradient configuration
 * @param {string} gradientData.gradientType - 'linear' or 'radial'
 * @param {Array} gradientData.stops - Array of gradient stops
 * @param {number} gradientData.angle - Angle for linear gradients (in degrees)
 */
export function applyGradientToSVG(svg: SVGElement, gradientData: {
    gradientType: string;
    stops: any[];
    angle: number;
}): void;
/**
 * Applies alpha transparency to all filled elements in an SVG
 * @param {SVGElement} svg - The SVG element to apply alpha to
 * @param {Object} alphaData - The alpha configuration
 * @param {string} alphaData.color - The fill color
 * @param {number} alphaData.alpha - The alpha value (0-1)
 */
export function applyAlphaToSVG(svg: SVGElement, alphaData: {
    color: string;
    alpha: number;
}): void;
/**
 * Generates transform string from shape attributes
 * @param {Object} attrs - Shape attributes
 * @param {number} attrs.rotation - Rotation angle in degrees
 * @param {boolean} attrs.flipH - Horizontal flip
 * @param {boolean} attrs.flipV - Vertical flip
 * @returns {string[]} Array of transform strings
 */
export function generateTransforms(attrs: {
    rotation: number;
    flipH: boolean;
    flipV: boolean;
}): string[];
//# sourceMappingURL=svg-utils.d.ts.map