/**
 * Sync Types — Platform Suffix ID System
 *
 * Replaces the legacy E suffix with platform-specific suffixes:
 *   G = GitHub, J = JIRA, A = Azure DevOps, E = Legacy
 *
 * ADR-0233: Platform suffix IDs use independent namespaces.
 * FS-042 (internal) and FS-042G (GitHub) coexist without collision.
 */
export type Platform = 'github' | 'jira' | 'ado';
export type PlatformSuffix = 'G' | 'J' | 'A' | 'E';
export type IdPrefix = 'FS' | 'US' | 'T';
export declare const SUFFIX_MAP: Record<Platform, PlatformSuffix>;
export declare const PLATFORM_MAP: Record<string, Platform>;
export interface ParsedId {
    prefix: IdPrefix;
    number: number;
    suffix?: PlatformSuffix;
    platform?: Platform;
    isExternal: boolean;
}
/**
 * Parse a SpecWeave ID into its components.
 *
 * @example
 * parseId('FS-042G') → { prefix: 'FS', number: 42, suffix: 'G', platform: 'github', isExternal: true }
 * parseId('US-004')  → { prefix: 'US', number: 4,  suffix: undefined, platform: undefined, isExternal: false }
 */
export declare function parseId(id: string): ParsedId | null;
/**
 * Check whether an ID is from an external platform (has G/J/A/E suffix).
 * Backward compatible: recognizes both new (G/J/A) and legacy (E) suffixes.
 */
export declare function isExternalId(id: string): boolean;
/**
 * Map a platform suffix letter to its Platform name.
 */
export declare function getPlatformFromSuffix(suffix: PlatformSuffix): Platform | undefined;
/**
 * Map a Platform name to its suffix letter.
 */
export declare function getSuffixFromPlatform(platform: Platform): PlatformSuffix;
/**
 * Format an ID from its components.
 *
 * @example
 * formatId('FS', 42)       → 'FS-042'
 * formatId('FS', 42, 'G')  → 'FS-042G'
 */
export declare function formatId(prefix: IdPrefix, number: number, suffix?: PlatformSuffix): string;
export interface ParsedIncrementFolder {
    number: number;
    suffix?: PlatformSuffix;
    platform?: Platform;
    name: string;
    isExternal: boolean;
}
/**
 * Parse an increment folder name into its components.
 *
 * @example
 * parseIncrementFolder('0042G-auth-flow') → { number: 42, suffix: 'G', platform: 'github', name: 'auth-flow', isExternal: true }
 */
export declare function parseIncrementFolder(folderName: string): ParsedIncrementFolder | null;
/**
 * Derive a Feature ID (FS-XXXS) from an increment folder name.
 *
 * @example
 * deriveFeatureId('0042G-auth-flow') → 'FS-042G'
 * deriveFeatureId('0042-auth-flow')  → 'FS-042'
 */
export declare function deriveFeatureId(folderName: string): string | null;
/**
 * Create an increment folder name from components.
 *
 * @example
 * createIncrementFolderName(42, 'auth-flow', 'G') → '0042G-auth-flow'
 * createIncrementFolderName(42, 'auth-flow')       → '0042-auth-flow'
 */
export declare function createIncrementFolderName(number: number, name: string, suffix?: PlatformSuffix): string;
/**
 * Format an issue title in the new clean format.
 * New: "US-010: Documentation Update"
 * Old: "[FS-172][US-010] Documentation Update" (deprecated)
 */
export declare function formatIssueTitle(usId: string, title: string): string;
/**
 * Format a milestone title.
 * "FS-172: True Autonomous Mode"
 */
export declare function formatMilestoneTitle(fsId: string, title: string): string;
/**
 * Append a platform suffix to an existing ID string.
 *
 * @example
 * formatSuffixedId('FS-001', 'github') → 'FS-001G'
 * formatSuffixedId('FS-001', undefined) → 'FS-001'
 */
export declare function formatSuffixedId(id: string, platform: Platform | undefined): string;
/**
 * Parse an issue title in the new "US-XXX: Title" format.
 */
export declare function parseIssueTitle(title: string): {
    usId: string;
    title: string;
} | null;
/**
 * Parse an issue title in the legacy "[FS-XXX][US-YYY] Title" format.
 */
export declare function parseIssueTitleLegacy(title: string): {
    fsId: string;
    usId: string;
    title: string;
} | null;
//# sourceMappingURL=types.d.ts.map