import { VersioningExtension } from '../extensions'; /** * The canonical cleanup configuration schema. * Everything the plugin needs lives here. */ export interface CleanupRepoConfig { /** Master switch. Default: true */ enabled: boolean; /** Default destination for files without a specific route. Default: "docs" */ defaultDestination: string; /** * Files explicitly allowed to stay in root (on top of built-in essentials). * Supports exact filenames and glob-like patterns (e.g. "*.config.js"). */ allowlist: string[]; /** * Files that should ALWAYS be moved, even if they match the allowlist. * Useful for forcing cleanup of specific known offenders. */ denylist: string[]; /** * File extensions to consider for cleanup (with leading dot). * Default: [".md", ".sh", ".json", ".yaml", ".yml", ".txt", ".log"] */ extensions: string[]; /** * Mapping of file extension → destination directory. * Overrides defaultDestination per extension. */ routes: Record; /** * Husky integration settings. */ husky: { enabled: boolean; /** Which husky hook to attach to. Default: "pre-commit" */ hook: string; /** "scan" = warning only, "enforce" = auto-move + git add. Default: "scan" */ mode: 'scan' | 'enforce'; }; } declare const BUILTIN_ALLOWLIST: Set; declare const DEFAULT_EXTENSIONS: string[]; declare const DEFAULT_ROUTES: Record; declare function loadCleanupConfig(rootConfig: any): CleanupRepoConfig; declare const extension: VersioningExtension; export { loadCleanupConfig, BUILTIN_ALLOWLIST, DEFAULT_EXTENSIONS, DEFAULT_ROUTES }; export default extension; //# sourceMappingURL=cleanup-repo-extension.d.ts.map