export interface GitignoreEntry { /** Canonical pattern we want present. */ pattern: string; /** * Other exact-line patterns that, if found, mean `pattern` is already * covered. We deliberately do NOT try to interpret full `.gitignore` * matching semantics (negations, directory-only patterns, etc.); a missed * equivalent just means an extra line gets added — never the reverse. */ equivalents?: readonly string[]; } export interface EnsureGitignoreResult { /** True when no `.gitignore` existed and we created one. */ created: boolean; /** Patterns we appended on this run. */ added: string[]; /** Patterns already covered (canonical or equivalent). */ alreadyCovered: string[]; } /** * Idempotently ensures `entries` are present in the host app's `.gitignore`. * * Existing user-written content is preserved verbatim; missing entries are * appended in a single block at the end of the file, preceded by a short * comment that explains where they came from. Re-running is a no-op when * every entry is already covered. * * If the file does not exist it is created. */ export declare function ensureGitignore(cwd: string, entries: readonly GitignoreEntry[]): EnsureGitignoreResult; //# sourceMappingURL=gitignore.d.ts.map