/**
 * Gantt-o-matic Type Definitions
 * ADHD-optimized Gantt chart types for therapeutic project management
 */
export interface GanttTask {
    id: string;
    name: string;
    startDate: Date;
    endDate: Date;
    duration: number;
    progress: number;
    priority: 1 | 2 | 3 | 4 | 5;
    energy: 1 | 2 | 3 | 4 | 5;
    reward: 1 | 2 | 3 | 4 | 5;
    assignee?: string;
    description?: string;
    color?: string;
    parentId?: string;
    dependencies: string[];
    tags: string[];
    status: 'not-started' | 'in-progress' | 'completed' | 'blocked';
    estimatedHours?: number;
    actualHours?: number;
}
export interface GanttDependency {
    id: string;
    fromTaskId: string;
    toTaskId: string;
    type: 'finish-to-start' | 'start-to-start' | 'finish-to-finish' | 'start-to-finish';
    lag: number;
}
export interface TimelineConfig {
    viewMode: 'days' | 'weeks' | 'months' | 'quarters';
    startDate: Date;
    endDate: Date;
    workingDays: number[];
    holidays: Date[];
    scale: number;
}
export interface GanttConfig {
    timeline: TimelineConfig;
    rowHeight: number;
    gridSize: number;
    showCriticalPath: boolean;
    showDependencies: boolean;
    enableDragDrop: boolean;
    enableResize: boolean;
    adhdOptimized: boolean;
    celebrateCompletions: boolean;
    autoSchedule: boolean;
}
export interface BulkOperation {
    type: 'reschedule-all' | 'optimize-timeline' | 'auto-balance' | 'compress-timeline';
    parameters?: Record<string, any>;
}
export interface CognitiveLoadState {
    totalTasks: number;
    activeTasks: number;
    overdueTasks: number;
    cognitiveScore: number;
    recommendation: 'optimal' | 'manageable' | 'warning' | 'overloaded';
}
export interface EnergyScheduling {
    highEnergyPeriods: {
        start: number;
        end: number;
    }[];
    lowEnergyPeriods: {
        start: number;
        end: number;
    }[];
    energyAllocation: Record<string, number>;
}
export interface TherapeuticFeatures {
    showProgressCelebrations: boolean;
    enableFocusMode: boolean;
    breakReminders: boolean;
    overloadWarnings: boolean;
    motivationalMessages: boolean;
    accessibilityMode: boolean;
}
export type TaskUpdateEvent = {
    taskId: string;
    updates: Partial<GanttTask>;
};
export type DependencyUpdateEvent = {
    dependencyId: string;
    updates: Partial<GanttDependency>;
};
export type ViewChangeEvent = {
    newViewMode: 'days' | 'weeks' | 'months';
};
export type CriticalPathResult = {
    criticalTasks: string[];
    criticalDependencies: string[];
    totalDuration: number;
    latestFinishDate: Date;
};
export type BulkOperationResult = {
    success: boolean;
    affectedTasks: string[];
    newSchedule?: GanttTask[];
    warnings?: string[];
    recommendations?: string[];
};
//# sourceMappingURL=types.d.ts.map