import type { Element } from 'hast';
import type { LanguageCapabilities } from "./getLanguageCapabilities.mjs";
/**
 * Converts a prop path (array of property names) to a kebab-case dotted string.
 * Each segment is independently converted.
 * Example: ["homeAddress", "streetName"] → "home-address.street-name"
 */
export declare function propPathToString(propPath: string[], propName: string): string;
/**
 * Checks if an element is a linkable span (pl-c1 or pl-en).
 * In CSS contexts, pl-v (CSS variables) and pl-e (class selectors) are also linkable.
 * Only spans are considered linkable - not anchors we've already created.
 */
export declare function isLinkableSpan(element: Element, lang?: LanguageCapabilities): boolean;
/**
 * Checks if an element is a property span (pl-v or pl-e).
 */
export declare function isPropertySpan(element: Element): boolean;
/**
 * Checks if an element is a keyword span (pl-k).
 */
export declare function isKeywordSpan(element: Element): boolean;
/**
 * Checks if an element is a comment span (pl-c).
 */
export declare function isCommentSpan(element: Element): boolean;
/**
 * Checks if an element is an identifier reference span (pl-smi).
 */
export declare function isSmiSpan(element: Element): boolean;
/**
 * Checks if an element is a string literal span (pl-s).
 */
export declare function isStringLiteralSpan(element: Element): boolean;
/**
 * Gets the text content of an element (concatenates all text children).
 */
export declare function getTextContent(element: Element): string;
/**
 * Gets the class names from an element's properties.
 */
export declare function getClassName(element: Element): string[] | undefined;