/**
 * User Story ID Generator
 *
 * Generates unique User Story IDs with support for both internal and external origins.
 * - Internal IDs: US-001, US-002, US-003 (no suffix)
 * - External IDs: US-001E, US-002E, US-003E (E suffix)
 * - Prefixed IDs: US-SPE-001, US-VSK-002E (umbrella multi-repo)
 *
 * ID generation strategy:
 * 1. Extract numeric part from all existing IDs (ignoring suffix and prefix)
 * 2. Find maximum number across both internal and external IDs
 * 3. Increment to get next sequential number
 * 4. Add prefix/E suffix as appropriate
 */
export type Origin = 'internal' | 'external';
export interface ParsedUsId {
    /** Full ID string (e.g., "US-003E", "US-SPE-001") */
    id: string;
    /** Numeric part (e.g., 3) */
    number: number;
    /** Origin type */
    origin: Origin;
    /** Optional prefix (e.g., "SPE", "VSK") */
    prefix?: string;
}
/**
 * Parse User Story ID to extract components
 *
 * Supports both plain (US-001, US-001E) and prefixed (US-SPE-001, US-VSK-002E) formats.
 *
 * @param id - User Story ID (e.g., "US-001", "US-SPE-001", "US-002E")
 * @returns Parsed ID components
 * @throws Error if ID format is invalid
 */
export declare function parseUsId(id: string): ParsedUsId;
/**
 * Get next sequential User Story ID
 *
 * Finds maximum numeric ID across all existing IDs (internal + external,
 * all prefixes) and generates next sequential ID with appropriate prefix/suffix.
 */
export declare function getNextUsId(existingIds: string[], origin: Origin, prefix?: string): string;
/**
 * Validate ID uniqueness
 *
 * @param id - User Story ID to check
 * @param existingIds - Array of existing User Story IDs
 * @throws Error if ID already exists
 */
export declare function validateUsIdUniqueness(id: string, existingIds: string[]): void;
/**
 * Detect origin from User Story ID
 *
 * @param id - User Story ID
 * @returns Origin type ('internal' or 'external')
 */
export declare function getUsIdOrigin(id: string): Origin;
/**
 * Extract numeric part from User Story ID
 *
 * @param id - User Story ID
 * @returns Numeric part
 */
export declare function getUsIdNumber(id: string): number;
/**
 * Check if ID is external (has E suffix)
 *
 * @param id - User Story ID
 * @returns true if external, false if internal
 */
export declare function isExternalUsId(id: string): boolean;
/**
 * Generate range of User Story IDs
 */
export declare function generateUsIdRange(start: number, count: number, origin: Origin, prefix?: string): string[];
//# sourceMappingURL=us-id-generator.d.ts.map