import { NxJsonConfiguration, NxReleaseConfiguration, NxReleaseDockerConfiguration } from '../../../config/nx-json'; import { ProjectFileMap, ProjectGraph } from '../../../config/project-graph'; type DeepRequired = Required<{ [K in keyof T]: T[K] extends Required ? T[K] : DeepRequired; }>; type EnsureDockerOptional = { [K in keyof T]: Omit & { docker: DeepRequired | undefined; }; }; type EnsureProjectsArray = { [K in keyof T]: T[K] extends { projects: any; } ? Omit & { projects: string[]; } : T[K]; }; type RemoveTrueFromType = T extends true ? never : T; type RemoveTrueFromProperties = { [P in keyof T]: P extends K ? RemoveTrueFromType : T[P]; }; type RemoveTrueFromPropertiesOnEach = { [U in keyof T]: RemoveTrueFromProperties; }; type RemoveBooleanFromType = T extends boolean ? never : T; type RemoveBooleanFromProperties = { [P in keyof T]: P extends K ? RemoveBooleanFromType : T[P]; }; type RemoveBooleanFromPropertiesOnEach = { [U in keyof T]: RemoveBooleanFromProperties; }; type RemoveDeprecatedPropertiesFromEach = { [K in keyof T]: Omit; }; export declare const IMPLICIT_DEFAULT_RELEASE_GROUP = "__default__"; export declare const DEFAULT_VERSION_ACTIONS_PATH = "@nx/js/src/release/version-actions"; /** * Our source of truth is a deeply required variant of the user-facing config interface, so that command * implementations can be sure that properties will exist and do not need to repeat the same checks over * and over again. * * We also normalize the projects property on release groups to always be an array of project names to make * it easier to work with (the user could be specifying a single string, and they can also use any valid matcher * pattern such as directories and globs). */ export type NxReleaseConfig = Omit, 'changelog' | 'docker'>>>>; changelog: RemoveTrueFromProperties, 'workspaceChangelog' | 'projectChangelogs'>; conventionalCommits: { types: RemoveBooleanFromPropertiesOnEach, string>>, 'changelog'>; }; }>, 'projects' | 'docker' | 'releaseTagPattern' | 'releaseTagPatternCheckAllBranchesWhen' | 'releaseTagPatternRequireSemver' | 'releaseTagPatternPreferDockerVersion' | 'releaseTagPatternStrictPreid'> & { docker: DeepRequired | undefined; releaseTag: DeepRequired>; }; export interface CreateNxReleaseConfigError { code: 'PROJECTS_AND_GROUPS_DEFINED' | 'RELEASE_GROUP_MATCHES_NO_PROJECTS' | 'RELEASE_GROUP_RELEASE_TAG_PATTERN_VERSION_PLACEHOLDER_MISSING_OR_EXCESSIVE' | 'PROJECT_MATCHES_MULTIPLE_GROUPS' | 'CONVENTIONAL_COMMITS_SHORTHAND_MIXED_WITH_OVERLAPPING_OPTIONS' | 'GLOBAL_GIT_CONFIG_MIXED_WITH_GRANULAR_GIT_CONFIG' | 'CANNOT_RESOLVE_CHANGELOG_RENDERER' | 'INVALID_CHANGELOG_CREATE_RELEASE_PROVIDER' | 'INVALID_CHANGELOG_CREATE_RELEASE_HOSTNAME' | 'INVALID_CHANGELOG_CREATE_RELEASE_API_BASE_URL' | 'DOCKER_VERSION_SCHEME_USES_VERSION_ACTIONS_VERSION_WHEN_SKIP_VERSION_ACTIONS' | 'GIT_PUSH_FALSE_WITH_CREATE_RELEASE'; data: Record; } export declare function createNxReleaseConfig(projectGraph: ProjectGraph, projectFileMap: ProjectFileMap, userConfig?: NxJsonConfiguration['release']): Promise<{ error: null | CreateNxReleaseConfigError; nxReleaseConfig: NxReleaseConfig | null; }>; export declare function handleNxReleaseConfigError(error: CreateNxReleaseConfigError): Promise; /** * Full form of the createRelease config, with the provider, hostname, and apiBaseUrl resolved. */ export interface ResolvedCreateRemoteReleaseProvider { provider: string; hostname: string; apiBaseUrl: string; } export {};