/**
 * Project Entity with Hierarchical Tree Structure
 * Uses Materialized Path pattern for efficient tree traversal
 */
export declare class ProjectEntity {
    id: string;
    name: string;
    description: string;
    status: 'active' | 'on_hold' | 'completed' | 'archived';
    path: string;
    level: number;
    parentId: string | null;
    parent: ProjectEntity | null;
    children: ProjectEntity[];
    repositoryUrl: string | null;
    bmadWorkflowType: 'greenfield' | 'brownfield' | 'maintenance' | null;
    taskMasterProjectId: string | null;
    priority: 'low' | 'medium' | 'high' | 'critical';
    startDate: Date | null;
    dueDate: Date | null;
    completionPercentage: number;
    createdBy: string | null;
    assignedTo: string | null;
    metadata: Record<string, any> | null;
    sort: number;
    dateCreated: Date;
    dateUpdated: Date;
    private _ancestors;
    private _depth;
    /**
     * Calculate ancestors from materialized path
     */
    calculateAncestors(): void;
    /**
     * Generate path for new nodes
     */
    generatePath(): Promise<void>;
    /**
     * Update level based on path
     */
    updateLevel(): void;
    /**
     * Get all ancestor IDs from the materialized path
     */
    getAncestorIds(): string[];
    /**
     * Check if this project is an ancestor of another
     */
    isAncestorOf(other: ProjectEntity): boolean;
    /**
     * Check if this project is a descendant of another
     */
    isDescendantOf(other: ProjectEntity): boolean;
    /**
     * Get the next sibling path
     */
    getNextSiblingPath(): string;
    /**
     * Check if project is a root node
     */
    isRoot(): boolean;
    /**
     * Check if project is a leaf node (has no children)
     */
    isLeaf(): boolean;
}
//# sourceMappingURL=project.entity.d.ts.map