import type { IconData } from '@gravity-ui/uikit'; import { EFlag } from '../../types/api/enums'; import type { PreparedVDisk } from './types'; export interface IconWithColor { icon: IconData; color?: string; } export type IconCalculator = (vDisk: PreparedVDisk, isDonor?: boolean) => IconData | IconWithColor[] | string | undefined; /** * Default icon logic - show icon only for errors and donors * This matches current behavior */ export declare function calculateDefaultIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined; /** * State-based icon logic - show specific icons for different states * Matches Figma specifications for State mode */ export declare function calculateStateIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined; /** * Space-based icon logic - show text labels for capacityAlert levels * Returns text labels (e.g., "G", "C", "LY") instead of icons */ export declare function calculateSpaceIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | string | undefined; /** * FrontQueues-based icon logic - show icons based on queue status * Matches FrontQueuesLegend icons: * - OK (Green): no icon * - Notice (Yellow): Ellipsis icon * - Warning (Orange): GripHorizontal icon * - Impaired (Red): Dots9 icon */ export declare function calculateFrontQueuesIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined; /** * Get icon and color for a single status flag. * Maps EFlag to the corresponding pair-legend icon and color. */ export declare function getFlagIconWithColor(flag: EFlag | undefined): IconWithColor | undefined; export declare function calculateFlagPairIcon(firstFlag: EFlag | undefined, secondFlag: EFlag | undefined): IconWithColor[] | undefined; /** * Compaction-based icon logic - shows two icons (Fresh + Level) side by side * Each icon has its own color based on its rank * Icons are only shown if at least one rank is not green * Returns an array of icons with colors: [FreshIcon, LevelIcon] * * Icon mapping from CompactionLegend: * - Green: CircleCheckFill (text-positive) * - Yellow: TriangleExclamationFill (text-warning) * - Orange: CircleExclamationFill (text-danger) * - Red: CircleXmarkFill (text-primary) * - Missing: CircleQuestionFill (text-hint) */ export declare function calculateCompactionIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | IconWithColor[] | undefined; /** * Calculate the All mode icon using VDiskState semantics. */ export declare function calculateAllIcon(vDisk: PreparedVDisk, isDonor?: boolean): IconData | undefined;