import { DataType } from 'apache-arrow'; import { CosmographConfig } from ".."; import { SizeAccessorFn } from "../config/interfaces/data"; export declare enum PointSizeStrategy { /** * Sizes points based on their degree (number of connections) within the {@link CosmographConfig.pointSizeRange pointSizeRange} size range with quantile-based boundaries. * - Minimum and maximum values are clamped to 5th and 95th percentiles of total degree distribution * - Has effect only if links provided */ Degree = "degree", /** * Sizes points based on their degree (number of connections) within the {@link CosmographConfig.pointSizeRange pointSizeRange} size range without quantile-based boundaries. * - Has effect only if links provided */ PreciseDegree = "preciseDegree", /** * Automatically sizes points using symmetric log scaling with quantile-based data boundaries based on the {@link CosmographConfig.pointSizeBy pointSizeBy} data. Uses {@link CosmographConfig.pointSizeRange pointSizeRange} to determine the min/max size range. * - Has effect only if {@link CosmographConfig.pointSizeBy pointSizeBy} provided and contains numeric data. */ Auto = "auto", /** * Directly uses {@link CosmographConfig.pointSizeBy pointSizeBy} column values as point sizes. * - If {@link CosmographConfig.pointSizeByFn pointSizeByFn} exists, applies it to transform {@link CosmographConfig.pointSizeBy pointSizeBy} values into custom sizes with it * - Falls back to {@link CosmographConfig.pointDefaultSize pointDefaultSize} if invalid size * - If neither {@link CosmographConfig.pointSizeBy} nor {@link CosmographConfig.pointSizeByFn} exist, sizes all points with {@link CosmographConfig.pointDefaultSize pointDefaultSize} */ Direct = "direct", /** * Sizes all points uniformly to the same size specified by {@link CosmographConfig.pointDefaultSize pointDefaultSize}. */ Single = "single" } export type PointSizeStrategyType = `${PointSizeStrategy}`; export declare const getFallbackPointSize: (config: CosmographConfig) => number; export declare const getActivePointSizeFn: (strategy: PointSizeStrategyType, config: CosmographConfig, data: number[]) => SizeAccessorFn; /** * Determines the optimal size strategy for points based on the configuration and data summary. * * @param config - The configuration object of the Cosmograph. * @param pointsSummary - Optional summaries of points. * @returns The resolved {@link PointSizeStrategyType} or `undefined` if using custom sizing */ export declare function resolveOptimalPointSizeStrategy(config: CosmographConfig, dataColumnType?: DataType): PointSizeStrategyType;