import type { Workspace } from '../../pm/index.ts';
import type { DeadRuleCommonOptions } from '../package/compile/XyConfig.ts';
import type { PackageVisibility } from './classifyPackageVisibility.ts';
export type { PackageVisibility } from './classifyPackageVisibility.ts';
export type DeadScope = 'package' | 'repo' | 'workspace';
export type DeadRuleId = 'dead.package.internal' | 'dead.repo.deprecated-export' | 'dead.repo.export' | 'dead.repo.internal' | 'dead.workspace.deprecated-export' | 'dead.workspace.deprecated-unused-export' | 'dead.workspace.export' | 'dead.workspace.export-published';
export type DeadSeverity = 'error' | 'warning';
export interface DeadOptions {
    deprecated?: boolean;
    fix?: boolean;
    format?: 'human' | 'json';
    pkg?: string;
    remove?: boolean;
    verbose?: boolean;
    workspace?: string;
}
export interface DeadFinding {
    column: number;
    deprecated?: boolean;
    detail?: string;
    file: string;
    fixable?: boolean;
    line: number;
    pkg: string;
    references?: DeadUsageReference[];
    rule: DeadRuleId;
    scope: DeadScope;
    symbol: string;
}
export interface DeadUsageReference {
    column: number;
    detail?: string;
    file: string;
    line: number;
}
export interface DeadSummary {
    disabledWorkspaceRules: DeadRuleId[];
    errorCount: number;
    fixApplied?: number;
    fixMode?: 'deprecate' | 'remove';
    fixSkipped?: number;
    scannedFiles: number;
    scannedPackages: number;
    warningCount: number;
    workspaceFile?: string;
}
export interface DeadResult {
    findings: DeadFinding[];
    summary: DeadSummary;
}
export interface DeadRule {
    appliesToVisibility?: PackageVisibility[];
    enabled: boolean;
    id: DeadRuleId;
    meta: {
        description: string;
        scope: DeadScope;
        severity?: DeadSeverity;
    };
    options: DeadRuleCommonOptions;
    requiresCodeWorkspace?: boolean;
}
export interface DeadAnalysisInput {
    externalFolders: string[];
    verbose: boolean;
    workspaces: Workspace[];
}
//# sourceMappingURL=types.d.ts.map