import type { CustomDataCellFormatter, CustomHeaderCellFormatter } from '../../../../domains/visualizations/components/pivot-table/formatters/types'; import { PivotTableDataPoint } from '../../../../types'; import { JtdConfig, JtdTarget } from './jtd-types.js'; /** * Check if a formatter cell ID is actionable for JTD * Used by hyperlink formatters with cell IDs like "rows.0", "columns.1", "values.2" * * @param jtdConfig - The JTD configuration * @param cellId - The cell ID from formatters (e.g., "rows.0") * @returns Object with actionable status and matching target * @internal */ export declare function getPivotFormatterCellActionability(jtdConfig: JtdConfig, cellId: string): { isActionable: boolean; matchingTarget?: JtdTarget; }; /** * Check if a click handler pivot point is actionable for JTD * Used by click handlers with pivot data points containing custom dimension IDs * * @param jtdConfig - The JTD configuration * @param pivotPoint - The pivot data point from click handlers * @returns Object with actionable status and matching target * @internal */ export declare function isPivotClickHandlerActionable(jtdConfig: JtdConfig, pivotPoint: PivotTableDataPoint): { isActionable: boolean; matchingTarget?: JtdTarget; }; /** * Find all actionable jump targets for a pivot point (for right-click menus) * Used by right-click handlers that need to show multiple targets * * @param jtdConfig - The JTD configuration * @param pivotPoint - The pivot data point from click handlers * @returns Object with actionable status and all matching targets * @internal * * @example * ```typescript * // Usage in right-click menu handler for pivot tables * const onPivotRightClick = (pivotPoint: PivotTableDataPoint) => { * const { isActionable, matchingTargets } = findAllActionablePivotTargets(jtdConfig, pivotPoint); * * if (!isActionable) { * return; // No menu - headers are not clickable or no valid targets * } * * // Only valid targets are returned: * // - Targets with matching pivot dimensions for this cell * // - NEVER targets with non-matching pivot dimensions * const menuItems = matchingTargets.map(target => ({ * caption: target.caption, * onClick: () => handleJumpToDashboard(target, pivotPoint) * })); * * openContextMenu({ items: menuItems }); * }; * ``` */ export declare function getPivotTargetActionability(jtdConfig: JtdConfig, pivotPoint: PivotTableDataPoint): { isActionable: boolean; matchingTargets: JtdTarget[]; }; /** * Creates a data cell formatter that applies hyperlink styling for JTD navigation * * @param hyperlinkColor - The color to use for hyperlink text (uses theme's hyperlinkColor * @returns Data cell formatter function * @internal */ export declare function createJtdHyperlinkDataCellFormatter(hyperlinkColor: string, jtdConfig: JtdConfig): CustomDataCellFormatter; /** * Creates a header cell formatter that applies hyperlink styling for JTD navigation * * @param hyperlinkColor - The color to use for hyperlink text (uses theme's hyperlinkColor or defaults to DEFAULT_HYPERLINK_COLOR) * @param jtdConfig - JTD configuration containing jump targets * @returns A header cell formatter that applies hyperlink styling to matching header cells */ export declare function createJtdHyperlinkHeaderCellFormatter(hyperlinkColor: string, jtdConfig: JtdConfig): CustomHeaderCellFormatter;