import { BaseFeatureForProject } from './base-feature-for-project';
import type { BaseProject } from './base-project';
/**
 * Git Ignore
 * Vscode Files Hide
 * Npm Ignore
 */
export declare class BaseIgnoreHideHelpers<PROJECT extends BaseProject = any> extends BaseFeatureForProject<PROJECT> {
    /**
     * (@default: false)
     *
     * If true, the files/folders/patterns that aren't really code and can
     * be recreated from template project like (tsconfig.json, .babelrc, .prettierc etc.)
     * will are stored in the repo
     */
    protected storeInRepoConfigFiles(): boolean;
    init(): Promise<void>;
    /**
     * @param data list of patterns
     * @returns list of patterns for recrusive ignore
     */
    private recursivePatternTransformFn;
    /**
     * Have to start with /
     *
     * Usefull if you are generating some files and folder in src/*.* folder
     * (Taon CLI does this for automatic host generation)
     * @returns patterns that are ignored in repo but visible to user
     */
    protected getPatternsIgnoredInRepoButVisibleToUser(): string[];
    protected alwaysIgnoredHiddenPatterns(): string[];
    alwaysUseRecursivePattern(): string[];
    protected alwaysIgnoredAndHiddenFilesAndFolders(): string[];
    protected hiddenButNeverIgnoredInRepo(): string[];
    protected hiddenButNotNecessaryIgnoredInRepoFilesAndFolders(): string[];
    protected hiddenButNotNecessaryIgnoredInRepoPatterns(): string[];
    protected npmIgnoreFilesFoldersPatterns(): string[];
    writeGitIgnore(): void;
    /**
     * Use can apply this to .vscode/settings.json [files.exclude] property
     */
    getVscodeFilesFoldersAndPatternsToHide(): {
        [fileFolderOrPattern: string]: true;
    };
    writeNpmIgnore(): void;
}
