import type { IconData } from '@gravity-ui/uikit'; import type { IconWithColor } from './iconCalculators'; import type { DisplaySeverity, PDiskType, PreparedPDisk, PreparedVDisk } from './types'; export type DiskDisplayMode = 'state' | 'space' | 'frontQueues' | 'compaction' | 'driveType' | 'all' | 'drive' | 'decommit' | 'maintenance' | 'device'; export type DiskIndicatorValue = IconData | IconWithColor[] | string; export interface AllModeIndicatorsState { capacityAlert?: IconData | string; frontQueues?: IconData; compaction?: IconWithColor[]; } export interface AllModeDisplayState { hasIssues?: boolean; indicators: AllModeIndicatorsState; } export interface PDiskAllModeIndicatorsState { capacityAlert?: IconData | string; drive?: IconData; decommit?: IconData; maintenance?: IconData; device?: IconWithColor[]; } export interface PDiskAllModeDisplayState { hasIssues?: boolean; indicators: PDiskAllModeIndicatorsState; } export interface BaseDiskDisplayState { driveType?: PDiskType; severity: DisplaySeverity; icon: DiskIndicatorValue | undefined; mode: DiskDisplayMode | undefined; isLegendInactive?: boolean; borderless?: boolean; showNoDataPlaceholder?: boolean; isNoData?: boolean; } export interface VDiskDisplayState extends BaseDiskDisplayState { allocatedPercent?: number; showAllocatedPercentLabel?: boolean; striped: boolean; iconPlacement: 'inline' | 'overlap'; allMode?: AllModeDisplayState; } export interface PDiskDisplayState extends BaseDiskDisplayState { width?: number; allocatedPercent?: number; showAllocatedPercentLabel?: boolean; iconPlacement?: 'inline' | 'overlap'; allMode?: PDiskAllModeDisplayState; } export type VDiskDisplayStateGetter = (vDisk: PreparedVDisk, isDonor?: boolean) => VDiskDisplayState; export type PDiskDisplayStateGetter = (pDisk: PreparedPDisk) => PDiskDisplayState; export declare function getDefaultDiskDisplayState(vDisk: PreparedVDisk, isDonor?: boolean): VDiskDisplayState; export declare function getDefaultPDiskDisplayState(pDisk: PreparedPDisk): PDiskDisplayState;