/** What a template says about itself. Never copied, and never packed either. */ export declare const MANIFEST_FILE = "template.json"; /** * Excluded from a scaffolded project *and* from the packed copy of a template. * * `.gitignore` syntax, matched against template-relative paths, because that is the * syntax the other half of the rule is already written in and a reader should not * have to hold two. */ export declare const NEVER_COPIED: readonly string[]; /** * The template's own ignore file, nearest spelling first. * * `_gitignore` is what a starter carries, because npm strips a real `.gitignore` out * of a published tarball. A template given by absolute path — `--template * /path/to/my-starter` — was never packed and may well carry the real thing. */ export declare const IGNORE_FILES: readonly string[]; /** Whether a path is ignored. `isDirectory` because `build/` only matches directories. */ export type Ignores = (path: string, isDirectory: boolean) => boolean; /** * A matcher for a set of `.gitignore` patterns. * * The last matching pattern decides, so `!keep.log` after `*.log` re-includes it — * git's own rule, and the one a template author will expect from a file they wrote * for git. An excluded *directory* settles everything beneath it before any of that: * a `!` cannot reach inside one, which is git's rule as well, and it is what makes * this answer the same whether or not the caller pruned the walk. */ export declare const ignoring: (patterns: Iterable) => Ignores; /** * Everything a template holds that must not travel with it — the whole rule. * * Both callers ask this one question: the scaffolder, deciding what a project gets, * and `scripts/copy-templates.mjs`, deciding what a published tarball gets. The two * halves are asked separately and either one excludes, rather than being concatenated * into a single pattern list: `.gitignore` lets a later `!` re-include an earlier * match, and a template does not get to opt its own `node_modules` back in. * * Paths are template-relative and `/`-separated. A caller must skip an excluded * *directory* without descending into it — nothing inside one is reconsidered, which * is git's rule as well as the reason this never walks `node_modules`. */ export declare const templateExclusions: (template: string) => Promise; //# sourceMappingURL=exclusions.d.ts.map