/**
 * Cross-Framework Operations
 *
 * Enables cross-framework linking and multi-project orchestration for
 * polyglot process management (SDLC + Marketing + Agile coexistence).
 *
 * Features:
 * - Link work items across frameworks
 * - Bidirectional metadata updates
 * - Work graph visualization (Mermaid)
 * - Orphaned link detection
 * - Archive and restore work items
 * - List all work across frameworks
 *
 * @module src/plugin/cross-framework-ops
 */
/**
 * Relationship types for cross-framework links
 */
export type RelationshipType = 'promotes' | 'promoted-by' | 'implements' | 'implemented-by' | 'blocks' | 'blocked-by' | 'depends-on' | 'required-by' | 'relates-to';
/**
 * Work link representing a cross-framework relationship
 */
export interface WorkLink {
    /** Target framework ID */
    framework: string;
    /** Target work item ID */
    id: string;
    /** Target work item type */
    type: string;
    /** Relationship type */
    relationship: RelationshipType;
    /** When link was created */
    linkedDate: string;
}
/**
 * Work item metadata
 */
export interface WorkMetadata {
    /** Framework this work belongs to */
    framework: string;
    /** Work item ID */
    id: string;
    /** Work item type (project, campaign, story, etc.) */
    type: string;
    /** Current status */
    status: 'active' | 'archived' | 'completed';
    /** Phase or stage */
    phase?: string;
    /** Creation date */
    createdAt: string;
    /** Last modified date */
    updatedAt: string;
    /** Cross-framework links */
    linkedWork: WorkLink[];
}
/**
 * Link operation result
 */
export interface LinkResult {
    /** Whether operation succeeded */
    success: boolean;
    /** Source work item */
    source: {
        framework: string;
        id: string;
    };
    /** Target work item */
    target: {
        framework: string;
        id: string;
    };
    /** Relationship type */
    relationship: RelationshipType;
    /** Error message if failed */
    error?: string;
}
/**
 * Work summary for listing
 */
export interface WorkSummary {
    /** Framework ID */
    framework: string;
    /** Work item ID */
    id: string;
    /** Work item type */
    type: string;
    /** Current status */
    status: string;
    /** Phase or stage */
    phase?: string;
    /** Number of linked work items */
    linkCount: number;
}
/**
 * Orphaned link information
 */
export interface OrphanedLink {
    /** Source work item */
    source: {
        framework: string;
        id: string;
    };
    /** Target that no longer exists */
    target: {
        framework: string;
        id: string;
    };
    /** Relationship */
    relationship: RelationshipType;
}
/**
 * Get inverse relationship type
 */
export declare function getInverseRelationship(relationship: RelationshipType): RelationshipType;
/**
 * CrossFrameworkOps - Manage cross-framework work linking
 *
 * @example
 * ```typescript
 * const ops = new CrossFrameworkOps('~/.local/share/ai-writing-guide');
 *
 * // Link SDLC project to marketing campaign
 * await ops.linkWork('sdlc-complete', 'plugin-system', 'marketing-flow', 'plugin-launch', 'promotes');
 *
 * // List all links
 * const links = await ops.listLinks('sdlc-complete', 'plugin-system');
 *
 * // Visualize work graph
 * const mermaid = await ops.visualizeWorkGraph();
 * ```
 */
export declare class CrossFrameworkOps {
    private aiwgRoot;
    private registryPath;
    constructor(aiwgRoot: string);
    /**
     * Link two work items across frameworks
     *
     * @param sourceFramework - Source framework ID
     * @param sourceId - Source work item ID
     * @param targetFramework - Target framework ID
     * @param targetId - Target work item ID
     * @param relationship - Relationship type
     * @returns Link result
     */
    linkWork(sourceFramework: string, sourceId: string, targetFramework: string, targetId: string, relationship: RelationshipType): Promise<LinkResult>;
    /**
     * Remove link between two work items
     *
     * @param sourceFramework - Source framework ID
     * @param sourceId - Source work item ID
     * @param targetFramework - Target framework ID
     * @param targetId - Target work item ID
     * @returns Link result
     */
    unlinkWork(sourceFramework: string, sourceId: string, targetFramework: string, targetId: string): Promise<LinkResult>;
    /**
     * List all links for a work item
     *
     * @param frameworkId - Framework ID
     * @param workId - Work item ID
     * @returns Array of links
     */
    listLinks(frameworkId: string, workId: string): Promise<WorkLink[]>;
    /**
     * List all work items across all frameworks
     *
     * @param frameworkId - Optional framework filter
     * @returns Array of work summaries
     */
    listAllWork(frameworkId?: string): Promise<WorkSummary[]>;
    /**
     * Visualize work graph in Mermaid format
     *
     * @param frameworkId - Optional framework filter
     * @returns Mermaid diagram string
     */
    visualizeWorkGraph(frameworkId?: string): Promise<string>;
    /**
     * Detect orphaned links (links to non-existent work items)
     *
     * @returns Array of orphaned links
     */
    detectOrphanedLinks(): Promise<OrphanedLink[]>;
    /**
     * Clean up orphaned links
     *
     * @returns Number of links removed
     */
    cleanOrphanedLinks(): Promise<number>;
    /**
     * Archive a work item
     *
     * @param frameworkId - Framework ID
     * @param workId - Work item ID
     * @param _reason - Archive reason
     * @returns Whether archive succeeded
     */
    archiveWork(frameworkId: string, workId: string, _reason: string): Promise<boolean>;
    /**
     * Check if a framework exists in the registry
     */
    private frameworkExists;
    /**
     * Check if a work item exists
     */
    private workExists;
    /**
     * Get work item metadata
     */
    private getWorkMetadata;
    /**
     * Save work item metadata
     */
    private saveWorkMetadata;
    /**
     * Get framework info from registry
     */
    private getFrameworkInfo;
    /**
     * Get all projects in a framework
     */
    private getFrameworkProjects;
    /**
     * Load registry file
     */
    private loadRegistry;
    /**
     * Move directory recursively
     */
    private moveDirectory;
    /**
     * Copy directory recursively
     */
    private copyDirectory;
}
/**
 * Create CrossFrameworkOps with default AIWG root
 */
export declare function createCrossFrameworkOps(): CrossFrameworkOps;
//# sourceMappingURL=cross-framework-ops.d.ts.map