import { SkeletonSuggestion } from "./SkeletonService";
export interface TidySuggestion {
    file: string;
    line: number;
    original: string;
    replacement: string;
    type: "token" | "constant" | "new_token" | "tailwind_semantic";
    tokenName?: string;
    confidence: number;
    /** 0-based occurrence of `original` class token on the line (tailwind_semantic only). */
    occurrenceIndex?: number;
    /** When set, user/AI must pick the replacement (tailwind_semantic only). */
    ambiguousCandidates?: string[];
    /** Background class that triggered a contrast/pairing fix (tailwind_semantic). */
    pairedWith?: string;
    /** Short explanation for CLI/UI (contrast and pairing). */
    rationale?: string;
    /** How applySuggestion should interpret replacement for tailwind semantic changes. */
    action?: "append" | "rewrite" | "append_and_rewrite";
    /** Optional dark-mode class that should be appended idempotently. */
    appendClass?: string;
}
/** Options for {@link TidyService.audit} (all default to true when omitted). */
export interface TidyAuditOptions {
    hexTokens?: boolean;
    constants?: boolean;
    semanticTailwind?: boolean;
    darkContrast?: boolean;
}
export type { SkeletonSuggestion };
export declare class TidyService {
    private projectRoot;
    private tokens;
    private constants;
    /** Semantic color names from globals/theme CSS (bg-*, text-*, border-*). */
    private themeColorNames;
    private FUZZY_THRESHOLD;
    private tokenDefinitionFiles;
    private constantDefinitionFiles;
    private excludePatterns;
    constructor(projectRoot: string, excludePatterns?: string[]);
    /**
     * Initialize symbols (tokens and constants)
     */
    initialize(): Promise<void>;
    /**
     * Check if a file should be excluded from tidy scanning
     */
    private shouldExcludeFile;
    /**
     * Audit the project for hardcoded values
     */
    audit(targetDirs: string[], auditOpts?: TidyAuditOptions): Promise<TidySuggestion[]>;
    /**
     * Suggest replacing default palette utilities (e.g. bg-white) with theme semantic classes.
     */
    private collectTailwindSemanticSuggestions;
    /**
     * Drop duplicate hex suggestions on the same line (one apply replaces all occurrences).
     */
    private dedupeSuggestions;
    /**
     * Apply a suggestion to the actual file
     */
    applySuggestion(suggestion: TidySuggestion): Promise<boolean>;
    /**
     * Append a new token or constant to the source file
     */
    appendNewToken(name: string, value: string, type: "token" | "constant"): Promise<boolean>;
    auditSkeletons(): Promise<SkeletonSuggestion[]>;
    applySkeleton(suggestion: SkeletonSuggestion): Promise<boolean>;
    /**
     * Calculate confidence score based on color distance and file context
     */
    private calculateConfidence;
    /**
     * Check if replacing a literal would create a circular reference
     * (e.g., suggesting to replace #06C807 with var(--traffic-green) in the file
     * where --traffic-green is defined as #06C807)
     */
    private wouldCreateCircularReference;
    private findBestTokenMatch;
    /**
     * Remove circular references and duplicates from CSS files
     * WARNING: This should NOT run on design system definition files!
     */
    cleanupCircularTokens(): Promise<number>;
}
//# sourceMappingURL=TidyService.d.ts.map