import { CommitTypesEnum, CommitScopesEnum } from '../types.js';
import '@nx/devkit';
import 'nx/src/config/nx-json';

declare const DEFAULT_CONVENTIONAL_COMMITS_CONFIG: {
    questions: {
        readonly type: {
            readonly type: "select";
            readonly title: "Commit Type";
            readonly description: "Select the commit type that best describes your changes";
            readonly enum: CommitTypesEnum<"chore" | "fix" | "feat" | "ci" | "refactor" | "style" | "perf" | "docs" | "test" | "deps" | "build" | "release">;
            readonly defaultValue: "chore";
            readonly maxLength: 20;
            readonly minLength: 3;
        };
        readonly scope: {
            readonly type: "select";
            readonly title: "Commit Scope";
            readonly description: "Select the monorepo project that is primarily impacted by this change";
            readonly enum: CommitScopesEnum;
            readonly defaultValue: "monorepo";
            readonly maxLength: 50;
            readonly minLength: 1;
        };
        readonly subject: {
            readonly type: "input";
            readonly title: "Commit Subject";
            readonly description: "Write a short, imperative tense description of the change";
            readonly maxLength: 150;
            readonly minLength: 3;
        };
        readonly body: {
            readonly type: "input";
            readonly title: "Commit Body";
            readonly description: "Provide a longer description of the change";
            readonly maxLength: 600;
        };
        readonly isBreaking: {
            readonly type: "confirm";
            readonly title: "Breaking Changes";
            readonly description: "Are there any breaking changes as a result of this commit?";
            readonly defaultValue: false;
        };
        readonly breakingBody: {
            readonly type: "input";
            readonly title: "Breaking Changes (Details)";
            readonly description: "A BREAKING CHANGE commit requires a body. Please enter a longer description of the commit itself";
            readonly when: (answers: Record<string, any>) => boolean;
            readonly maxLength: 600;
            readonly minLength: 3;
        };
        readonly isIssueAffected: {
            readonly type: "confirm";
            readonly title: "Open Issue Affected";
            readonly description: "Does this change impact any open issues?";
            readonly defaultValue: false;
        };
        readonly issuesBody: {
            readonly type: "input";
            readonly title: "Open Issue Affected (Details)";
            readonly description: "If issues are closed, the commit requires a body. Please enter a longer description of the commit itself";
            readonly when: (answers: Record<string, any>) => boolean;
            readonly maxLength: 600;
            readonly minLength: 3;
        };
    };
    types: {
        readonly chore: {
            readonly description: "Other changes that don't modify src or test files";
            readonly title: "Chore";
            readonly emoji: "⚙️  ";
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Miscellaneous";
                readonly hidden: false;
            };
        };
        readonly fix: {
            readonly description: "A change that resolves an issue previously identified with the package";
            readonly title: "Bug Fix";
            readonly emoji: "🪲  ";
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Bug Fixes";
                readonly hidden: false;
            };
        };
        readonly feat: {
            readonly description: "A change that adds a new feature to the package";
            readonly title: "Feature";
            readonly emoji: "🔑 ";
            readonly semverBump: "minor";
            readonly changelog: {
                readonly title: "Features";
                readonly hidden: false;
            };
        };
        readonly ci: {
            readonly description: "Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)";
            readonly title: "Continuous Integration";
            readonly emoji: "🧰 ";
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Continuous Integration";
                readonly hidden: false;
            };
        };
        readonly refactor: {
            readonly description: "A code change that neither fixes a bug nor adds a feature";
            readonly title: "Code Refactoring";
            readonly emoji: "🧪 ";
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Source Code Improvements";
                readonly hidden: false;
            };
        };
        readonly style: {
            readonly description: "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)";
            readonly title: "Style Improvements";
            readonly emoji: "💎 ";
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Style Improvements";
                readonly hidden: false;
            };
        };
        readonly perf: {
            readonly description: "A code change that improves performance";
            readonly title: "Performance Improvement";
            readonly emoji: "⏱️  ";
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Performance Improvements";
                readonly hidden: false;
            };
        };
        readonly docs: {
            readonly description: "A change that only includes documentation updates";
            readonly title: "Documentation";
            readonly emoji: "📜 ";
            readonly semverBump: "none";
            readonly changelog: {
                readonly title: "Documentation";
                readonly hidden: false;
            };
        };
        readonly test: {
            readonly description: "Adding missing tests or correcting existing tests";
            readonly title: "Testing";
            readonly emoji: "🚨 ";
            readonly semverBump: "none";
            readonly changelog: {
                readonly title: "Testing";
                readonly hidden: true;
            };
        };
        readonly deps: {
            readonly description: "Changes that add, update, or remove dependencies. This includes devDependencies and peerDependencies";
            readonly title: "Dependencies";
            readonly emoji: "📦 ";
            readonly hidden: true;
            readonly semverBump: "patch";
            readonly changelog: {
                readonly title: "Dependency Upgrades";
                readonly hidden: false;
            };
        };
        readonly build: {
            readonly description: "Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)";
            readonly title: "Build";
            readonly emoji: "🛠 ";
            readonly hidden: true;
            readonly semverBump: "none";
            readonly changelog: {
                readonly title: "Build";
                readonly hidden: true;
            };
        };
        readonly release: {
            readonly description: "Publishing a commit containing a newly released version";
            readonly title: "Publish Release";
            readonly emoji: "🚀 ";
            readonly hidden: true;
            readonly semverBump: "none";
            readonly changelog: {
                readonly title: "Publish Release";
                readonly hidden: true;
            };
        };
    };
};
declare const DEFAULT_RELEASE_GROUP_CONFIG: {
    projectsRelationship: string;
    releaseTagPattern: string;
    changelog: {
        git: {
            tag: boolean;
        };
        createRelease: string;
        entryWhenNoChanges: boolean;
        file: string;
        renderOptions: {
            authors: boolean;
            commitReferences: boolean;
            versionTitleDate: boolean;
        };
    };
    version: {
        groupPreVersionCommand: string;
        generator: string;
        generatorOptions: {
            currentVersionResolver: string;
            specifierSource: string;
        };
    };
};
declare const DEFAULT_RELEASE_CONFIG: {
    conventionalCommits: {
        questions: {
            readonly type: {
                readonly type: "select";
                readonly title: "Commit Type";
                readonly description: "Select the commit type that best describes your changes";
                readonly enum: CommitTypesEnum<"chore" | "fix" | "feat" | "ci" | "refactor" | "style" | "perf" | "docs" | "test" | "deps" | "build" | "release">;
                readonly defaultValue: "chore";
                readonly maxLength: 20;
                readonly minLength: 3;
            };
            readonly scope: {
                readonly type: "select";
                readonly title: "Commit Scope";
                readonly description: "Select the monorepo project that is primarily impacted by this change";
                readonly enum: CommitScopesEnum;
                readonly defaultValue: "monorepo";
                readonly maxLength: 50;
                readonly minLength: 1;
            };
            readonly subject: {
                readonly type: "input";
                readonly title: "Commit Subject";
                readonly description: "Write a short, imperative tense description of the change";
                readonly maxLength: 150;
                readonly minLength: 3;
            };
            readonly body: {
                readonly type: "input";
                readonly title: "Commit Body";
                readonly description: "Provide a longer description of the change";
                readonly maxLength: 600;
            };
            readonly isBreaking: {
                readonly type: "confirm";
                readonly title: "Breaking Changes";
                readonly description: "Are there any breaking changes as a result of this commit?";
                readonly defaultValue: false;
            };
            readonly breakingBody: {
                readonly type: "input";
                readonly title: "Breaking Changes (Details)";
                readonly description: "A BREAKING CHANGE commit requires a body. Please enter a longer description of the commit itself";
                readonly when: (answers: Record<string, any>) => boolean;
                readonly maxLength: 600;
                readonly minLength: 3;
            };
            readonly isIssueAffected: {
                readonly type: "confirm";
                readonly title: "Open Issue Affected";
                readonly description: "Does this change impact any open issues?";
                readonly defaultValue: false;
            };
            readonly issuesBody: {
                readonly type: "input";
                readonly title: "Open Issue Affected (Details)";
                readonly description: "If issues are closed, the commit requires a body. Please enter a longer description of the commit itself";
                readonly when: (answers: Record<string, any>) => boolean;
                readonly maxLength: 600;
                readonly minLength: 3;
            };
        };
        types: {
            readonly chore: {
                readonly description: "Other changes that don't modify src or test files";
                readonly title: "Chore";
                readonly emoji: "⚙️  ";
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Miscellaneous";
                    readonly hidden: false;
                };
            };
            readonly fix: {
                readonly description: "A change that resolves an issue previously identified with the package";
                readonly title: "Bug Fix";
                readonly emoji: "🪲  ";
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Bug Fixes";
                    readonly hidden: false;
                };
            };
            readonly feat: {
                readonly description: "A change that adds a new feature to the package";
                readonly title: "Feature";
                readonly emoji: "🔑 ";
                readonly semverBump: "minor";
                readonly changelog: {
                    readonly title: "Features";
                    readonly hidden: false;
                };
            };
            readonly ci: {
                readonly description: "Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)";
                readonly title: "Continuous Integration";
                readonly emoji: "🧰 ";
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Continuous Integration";
                    readonly hidden: false;
                };
            };
            readonly refactor: {
                readonly description: "A code change that neither fixes a bug nor adds a feature";
                readonly title: "Code Refactoring";
                readonly emoji: "🧪 ";
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Source Code Improvements";
                    readonly hidden: false;
                };
            };
            readonly style: {
                readonly description: "Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)";
                readonly title: "Style Improvements";
                readonly emoji: "💎 ";
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Style Improvements";
                    readonly hidden: false;
                };
            };
            readonly perf: {
                readonly description: "A code change that improves performance";
                readonly title: "Performance Improvement";
                readonly emoji: "⏱️  ";
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Performance Improvements";
                    readonly hidden: false;
                };
            };
            readonly docs: {
                readonly description: "A change that only includes documentation updates";
                readonly title: "Documentation";
                readonly emoji: "📜 ";
                readonly semverBump: "none";
                readonly changelog: {
                    readonly title: "Documentation";
                    readonly hidden: false;
                };
            };
            readonly test: {
                readonly description: "Adding missing tests or correcting existing tests";
                readonly title: "Testing";
                readonly emoji: "🚨 ";
                readonly semverBump: "none";
                readonly changelog: {
                    readonly title: "Testing";
                    readonly hidden: true;
                };
            };
            readonly deps: {
                readonly description: "Changes that add, update, or remove dependencies. This includes devDependencies and peerDependencies";
                readonly title: "Dependencies";
                readonly emoji: "📦 ";
                readonly hidden: true;
                readonly semverBump: "patch";
                readonly changelog: {
                    readonly title: "Dependency Upgrades";
                    readonly hidden: false;
                };
            };
            readonly build: {
                readonly description: "Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)";
                readonly title: "Build";
                readonly emoji: "🛠 ";
                readonly hidden: true;
                readonly semverBump: "none";
                readonly changelog: {
                    readonly title: "Build";
                    readonly hidden: true;
                };
            };
            readonly release: {
                readonly description: "Publishing a commit containing a newly released version";
                readonly title: "Publish Release";
                readonly emoji: "🚀 ";
                readonly hidden: true;
                readonly semverBump: "none";
                readonly changelog: {
                    readonly title: "Publish Release";
                    readonly hidden: true;
                };
            };
        };
    };
    changelog: {
        git: {
            tag: boolean;
        };
        automaticFromRef: boolean;
        workspaceChangelog: boolean;
        projectChangelogs: {
            createRelease: string;
            entryWhenNoChanges: boolean;
            file: string;
            renderOptions: {
                authors: boolean;
                commitReferences: boolean;
                versionTitleDate: boolean;
            };
        };
    };
    version: {
        preVersionCommand: string;
        generator: string;
        generatorOptions: {
            currentVersionResolver: string;
            specifierSource: string;
        };
    };
};

export { DEFAULT_CONVENTIONAL_COMMITS_CONFIG, DEFAULT_RELEASE_CONFIG, DEFAULT_RELEASE_GROUP_CONFIG };
