/**
 * Increment Limits
 *
 * Type-based limits for concurrent active increments.
 * Part of increment 0007: Smart Status Management
 */
import { IncrementType, IncrementMetadata } from '../types/increment-metadata.js';
/**
 * Limit check result
 */
export interface LimitCheckResult {
    /** Whether the limit is exceeded */
    exceeded: boolean;
    /** Current count of active increments of this type */
    current: number;
    /** Maximum allowed (null = unlimited) */
    limit: number | null;
    /** Warning message if limit exceeded */
    warning?: string;
    /** Severity level: info, warning, error */
    severity: 'info' | 'warning' | 'error';
    /** Suggested actions */
    suggestions?: string[];
    /** Active increments of this type */
    activeIncrements?: IncrementMetadata[];
}
/**
 * Context switching cost warning
 */
export interface ContextSwitchWarning {
    /** Whether warning should be shown */
    show: boolean;
    /** Estimated productivity cost (%) */
    productivityCost: string;
    /** Message to display */
    message: string;
    /** Options for user */
    options: Array<{
        label: string;
        value: string;
        description: string;
    }>;
}
/**
 * Check if creating a new increment would exceed type-based limits
 */
export declare function checkIncrementLimits(type: IncrementType): LimitCheckResult;
/**
 * Check all increment types and return warnings
 */
export declare function checkAllLimits(): Record<IncrementType, LimitCheckResult>;
/**
 * Get context switching warning for starting a new increment
 */
export declare function getContextSwitchWarning(newType: IncrementType): ContextSwitchWarning;
/**
 * Get summary of all limits
 */
export declare function getLimitsSummary(): string;
/**
 * Check if starting a new increment of this type would be allowed
 * (considering limits)
 */
export declare function canStartIncrement(type: IncrementType): {
    allowed: boolean;
    reason?: string;
};
//# sourceMappingURL=limits.d.ts.map