/**
 * Living Docs User Story File Type Definitions
 * Includes format preservation metadata (T-034A)
 */
export interface LivingDocsUSFile {
    /** User Story ID (e.g., "US-001", "US-002E") */
    id: string;
    /** User Story title */
    title: string;
    /** User Story description/overview */
    description?: string;
    /** Acceptance Criteria IDs */
    acceptanceCriteria?: string[];
    /** Implementation status */
    status?: 'draft' | 'in-progress' | 'completed' | 'archived';
    /** Priority level */
    priority?: 'P0' | 'P1' | 'P2' | 'P3';
    /**
     * Format preservation flag
     * - true: External item, preserve original format (comment-only sync)
     * - false: Internal item, allow full sync (title, description, ACs)
     */
    format_preservation?: boolean;
    /**
     * Original external title (for validation)
     * Stored to detect if external tool accidentally modified title
     */
    external_title?: string;
    /**
     * External source platform
     */
    external_source?: 'github' | 'jira' | 'ado';
    /**
     * External item ID (e.g., "GH-#638", "JIRA-SPEC-789")
     */
    external_id?: string;
    /**
     * External item URL
     */
    external_url?: string;
    /**
     * Import timestamp
     */
    imported_at?: string;
    /**
     * Origin (internal | external)
     * Derived from ID suffix (E = external)
     */
    origin?: 'internal' | 'external';
    /**
     * External tools metadata (frontmatter cache for issue numbers)
     * Used for Layer 1 idempotency caching (fastest check, <1ms)
     */
    external_tools?: {
        github?: {
            number?: number;
            url?: string;
        };
        jira?: {
            key?: string;
            url?: string;
        };
        ado?: {
            id?: number;
            url?: string;
        };
    };
}
/**
 * Check if US file has format preservation enabled
 */
export declare function hasFormatPreservation(usFile: LivingDocsUSFile): boolean;
/**
 * Check if US is external (based on ID suffix)
 */
export declare function isExternalUS(usId: string): boolean;
/**
 * Extract origin from US metadata
 */
export declare function getOrigin(usFile: LivingDocsUSFile): 'internal' | 'external';
//# sourceMappingURL=living-docs-us-file.d.ts.map