/**
 * ProgressViewer - Progress bar rendering viewer
 * Handles progress display with configurable colors, text, and thresholds
 * Supports drag-to-change functionality
 */
import type { CellViewer, ViewerRenderContext, ProgressViewerData } from './types';
/**
 * ProgressViewer renders progress bars in cells
 * Supports percentage display, custom colors, threshold-based coloring, and drag-to-change
 */
declare class ProgressViewer implements CellViewer<ProgressViewerData> {
    readonly type = "progress";
    private readonly defaultColor;
    private readonly defaultTrackColor;
    private readonly handleRadius;
    private readonly handleBorderWidth;
    /**
     * Draw progress bar in the cell
     */
    draw(context: ViewerRenderContext, data: ProgressViewerData): void;
    /**
     * Check if mouse is over the drag handle
     */
    getInteractiveCursor(context: ViewerRenderContext, data: ProgressViewerData, localX: number, localY: number): string | null;
    /**
     * Start drag operation
     */
    onDragStart(context: ViewerRenderContext, data: ProgressViewerData, localX: number, localY: number): boolean;
    /**
     * Handle drag move and calculate new value
     */
    onDragMove(context: ViewerRenderContext, data: ProgressViewerData, localX: number, _localY: number, _startX: number, _startY: number): any;
    /**
     * Handle drag end - trigger onProgressChange callback for data persistence
     */
    onDragEnd(_context: ViewerRenderContext, data: ProgressViewerData, newValue: any, startValue?: any): void;
    /**
     * Check if mouse is over the drag handle
     */
    private isOverDragHandle;
    /**
     * Check if mouse is over the progress bar area
     */
    private isOverProgressBar;
    /**
     * Draw the drag handle
     */
    private drawDragHandle;
    /**
     * Normalize value to 0-1 range
     */
    private normalizeValue;
    /**
     * Get progress bar color based on value and thresholds
     */
    private getProgressColor;
    /**
     * Draw percentage text
     */
    private drawPercentageText;
    /**
     * Draw a rounded rectangle
     */
    private drawRoundedRect;
}
export default ProgressViewer;
