/**
 * Task ID Generator
 *
 * Generates unique Task IDs with support for both internal and external origins.
 * - Internal IDs: T-001, T-002, T-003 (no suffix)
 * - External IDs: T-001E, T-002E, T-003E (E suffix)
 *
 * ID generation strategy:
 * 1. Extract numeric part from all existing IDs (ignoring suffix)
 * 2. Find maximum number across both internal and external IDs
 * 3. Increment to get next sequential number
 * 4. Add E suffix for external origin, no suffix for internal
 */
export type Origin = 'internal' | 'external';
export interface ParsedTaskId {
    /** Full ID string (e.g., "T-003E") */
    id: string;
    /** Numeric part (e.g., 3) */
    number: number;
    /** Origin type */
    origin: Origin;
}
/**
 * Parse Task ID to extract components
 *
 * @param id - Task ID (e.g., "T-001", "T-002E")
 * @returns Parsed ID components
 * @throws Error if ID format is invalid
 */
export declare function parseTaskId(id: string): ParsedTaskId;
/**
 * Get next sequential Task ID
 *
 * Finds maximum numeric ID across all existing IDs (internal + external)
 * and generates next sequential ID with appropriate suffix.
 */
export declare function getNextTaskId(existingIds: string[], origin: Origin): string;
/**
 * Validate ID uniqueness
 *
 * @param id - Task ID to check
 * @param existingIds - Array of existing Task IDs
 * @throws Error if ID already exists
 */
export declare function validateTaskIdUniqueness(id: string, existingIds: string[]): void;
/**
 * Detect origin from Task ID
 *
 * @param id - Task ID
 * @returns Origin type ('internal' or 'external')
 */
export declare function getTaskIdOrigin(id: string): Origin;
/**
 * Extract numeric part from Task ID
 *
 * @param id - Task ID
 * @returns Numeric part
 */
export declare function getTaskIdNumber(id: string): number;
/**
 * Check if ID is external (has E suffix)
 *
 * @param id - Task ID
 * @returns true if external, false if internal
 */
export declare function isExternalTaskId(id: string): boolean;
/**
 * Generate range of Task IDs
 */
export declare function generateTaskIdRange(start: number, count: number, origin: Origin): string[];
//# sourceMappingURL=task-id-generator.d.ts.map