/** * Release channel resolution and validation. * * Maps Git branches to npm dist-tags and validates that version strings * conform to the expectations of their target channel. * * @task T5586 */ import type { ChannelValidationResult, ReleaseChannel } from '@cleocode/contracts'; import type { ChannelConfig } from './release-config.js'; export type { ChannelConfig, ChannelValidationResult, ReleaseChannel }; /** Return the default branch-to-channel mapping. */ export declare function getDefaultChannelConfig(): ChannelConfig; /** * Resolve the release channel for a given Git branch name. * * Resolution order: * 1. Exact match in `config.custom` * 2. Prefix match in `config.custom` * 3. Exact match against `config.main` → 'latest' * 4. Exact match against `config.develop` → 'beta' * 5. Starts with 'feature/', 'hotfix/', 'release/', or `config.feature` → 'alpha' * 6. Fallback → 'alpha' */ export declare function resolveChannelFromBranch(branch: string, config?: ChannelConfig): ReleaseChannel; /** * Map a release channel to its npm dist-tag string. * * Kept as an explicit function (rather than a direct cast) so that callers * remain decoupled from the string values and the mapping can be extended * without changing call sites. */ export declare function channelToDistTag(channel: ReleaseChannel): string; /** * Validate that a version string satisfies the pre-release conventions for * the given channel. * * Rules: * - 'latest': version must NOT contain '-' (no pre-release suffix) * - 'beta': version must contain '-beta' or '-rc' * - 'alpha': version must contain '-alpha', '-dev', '-rc', or '-beta' */ export declare function validateVersionChannel(version: string, channel: ReleaseChannel): ChannelValidationResult; /** Return a human-readable description of the given release channel. */ export declare function describeChannel(channel: ReleaseChannel): string; //# sourceMappingURL=channel.d.ts.map