/**
 * Spec Identifier Detector
 *
 * Auto-detects the correct identifier strategy based on:
 * Priority 1: External tool links (JIRA, ADO, GitHub)
 * Priority 2: Custom ID in frontmatter
 * Priority 3: Title-based slug
 * Priority 4: Sequential numbering
 */
import { SpecIdentifier, SpecContent } from '../types/spec-identifier.js';
export type { SpecContent } from '../types/spec-identifier.js';
export interface DetectorOptions {
    /** Existing spec IDs in this project (for conflict detection) */
    existingSpecs?: string[];
    /** Whether to prefer title-slug over sequential */
    preferTitleSlug?: boolean;
    /** Minimum slug length to consider valid */
    minSlugLength?: number;
}
/**
 * Detect the appropriate identifier for a spec
 */
export declare function detectSpecIdentifier(spec: SpecContent, options?: DetectorOptions): SpecIdentifier;
/**
 * Convert title to kebab-case slug
 */
export declare function slugify(text: string): string;
/**
 * Extract spec identifier from file path
 *
 * Examples:
 * - specs/backend/JIRA-AUTH-123.md → "backend/JIRA-AUTH-123"
 * - specs/frontend/user-login-ui.md → "frontend/user-login-ui"
 * - specs/backend/spec-001-user-auth.md → "backend/spec-001"
 */
export declare function extractIdentifierFromPath(filePath: string): {
    project: string;
    specId: string;
    full: string;
} | null;
/**
 * Format GitHub issue title from spec identifier
 */
export declare function formatGitHubIssueTitle(specId: SpecIdentifier, title: string): string;
/**
 * Validate spec identifier format
 */
export declare function isValidSpecIdentifier(id: string): boolean;
//# sourceMappingURL=spec-identifier-detector.d.ts.map