import type Extent from "@arcgis/core/geometry/Extent";
import type SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol";
import type { ILineType } from "dxf-parser";
/**
 * Maps a DXF line type name and definition to a corresponding Esri
 * SimpleLineSymbol style.
 *
 * @param lineTypeName The name of the DXF line type.
 * @param lineTypeObj The DXF line type definition object.
 * @returns The mapped Esri line style (e.g., "solid", "dash", "dot").
 */
export declare function mapDXFLineTypeToEsri(lineTypeName: string, lineTypeObj: ILineType | undefined): "solid" | "dash" | "dot" | "dash-dot" | "long-dash" | "long-dash-dot" | "short-dash" | "short-dash-dot";
/**
 * Maps basic DXF line type names to Esri line styles.
 *
 * @param name The name of the line type.
 * @param pattern The numeric pattern of the line type.
 * @returns The mapped Esri line style, or undefined if no match is found.
 */
export declare function mapBasicLineType(name: string, pattern?: number[]): "solid" | "dash" | "dash-dot" | "dot" | "short-dash" | "short-dash-dot" | "long-dash" | "long-dash-dot" | undefined;
/**
 * Maps ISO line type patterns based on name conventions.
 *
 * @param name The name of the line type.
 * @returns The mapped Esri line style, or undefined if no match is found.
 */
export declare function mapIsoPatterns(name: string): "long-dash" | "long-dash-dot" | "dash-dot" | undefined;
/**
 * Maps a DXF line type pattern definition to an Esri line style.
 *
 * @param lineTypeObj The DXF line type definition object.
 * @returns The mapped Esri line style, or undefined if the pattern cannot be
 *   mapped.
 */
export declare function mapLineTypePattern(lineTypeObj: ILineType | undefined): "solid" | "dash" | "dot" | "dash-dot" | undefined;
/**
 * Converts a DXF integer color value to an RGB array.
 *
 * @param colorInt Integer color value.
 * @returns RGB array.
 */
export declare function intToRGB(colorInt: number): number[];
/**
 * Represents the valid style values for an Esri SimpleFillSymbol.
 */
export type SimpleFillStyle = SimpleFillSymbol["style"];
export declare const VALID_FILL_STYLES: SimpleFillStyle[];
/**
 * Normalizes style strings (including legacy esriSFS* values) to valid
 * SimpleFillSymbol styles.
 *
 * @param style The style value to normalize.
 */
export declare function normalizeFillStyle(style?: unknown): SimpleFillStyle;
/**
 * Normalizes an outline object into a simple line symbol properties object.
 *
 * @param outline The outline properties to normalize.
 * @param outline.color The color of the outline.
 * @param outline.width The width of the outline.
 * @param outline.type The type of the outline.
 * @returns An object containing `type`, `color`, and `width` for a
 *   SimpleLineSymbol.
 */
export declare function normalizeLineOutline(outline?: {
    color?: number[];
    width?: number;
    type?: string;
}): {
    type: "simple-line";
    color: number[];
    width: number;
};
/**
 * Derives a minimum scale for annotation visibility based on extent and text
 * density.
 *
 * @param extent The extent of the annotation layer.
 * @param textCount The total number of text elements.
 * @param maxFontSize The maximum font size used in the annotations.
 * @returns The calculated minimum scale.
 */
export declare function deriveAnnotationMinScale(extent: Extent | undefined, textCount: number, maxFontSize: number): number;
/**
 * Sanitizes the symbol width.
 *
 * @param width The width to sanitize.
 */
export declare function sanitizeSymbolWidth(width: number | undefined): number;
