export interface Equipment {
    id: string;
    name: string;
    type: 'kitchen' | 'hvac' | 'electrical' | 'plumbing' | 'facility' | 'vehicle';
    location: string;
    installDate: Date;
    warrantyExpiry?: Date;
    criticality: 'critical' | 'important' | 'standard';
    maintenanceSchedule: MaintenanceSchedule;
    operationalHours?: number;
    condition: 'excellent' | 'good' | 'fair' | 'poor';
}
export interface MaintenanceSchedule {
    daily?: MaintenanceTask[];
    weekly?: MaintenanceTask[];
    monthly?: MaintenanceTask[];
    quarterly?: MaintenanceTask[];
    annual?: MaintenanceTask[];
    hoursBasef?: {
        hours: number;
        task: MaintenanceTask;
    }[];
}
export interface MaintenanceTask {
    id: string;
    name: string;
    description: string;
    estimatedDuration: number;
    requiredSkills: string[];
    parts?: RequiredPart[];
    safetyRequirements?: string[];
    documentation?: string;
}
export interface RequiredPart {
    partNumber: string;
    name: string;
    quantity: number;
    cost: number;
    supplier?: string;
}
export interface MaintenanceHistory {
    equipmentId: string;
    tasks: CompletedTask[];
    failures: EquipmentFailure[];
    costs: MaintenanceCost[];
}
export interface CompletedTask {
    taskId: string;
    completedDate: Date;
    technician: string;
    duration: number;
    notes?: string;
    partsUsed?: RequiredPart[];
}
export interface EquipmentFailure {
    date: Date;
    description: string;
    downtime: number;
    repairCost: number;
    rootCause?: string;
    preventable: boolean;
}
export interface MaintenanceCost {
    date: Date;
    type: 'preventive' | 'repair' | 'emergency';
    labor: number;
    parts: number;
    external?: number;
    total: number;
}
export interface OptimizedSchedule {
    schedule: ScheduledMaintenance[];
    efficiency: number;
    costProjection: number;
    downtimeReduction: number;
    philosophyImpact: {
        teacherTimeSaved: number;
        reliabilityIncrease: number;
        budgetOptimization: number;
    };
}
export interface ScheduledMaintenance {
    equipment: Equipment;
    task: MaintenanceTask;
    scheduledDate: Date;
    priority: number;
    grouping?: string;
    estimatedImpact: {
        downtime: number;
        cost: number;
    };
}
export interface Anomaly {
    type: string;
    description: string;
    severity?: number;
    timestamp?: Date;
}
export declare namespace MaintenanceConventions {
    /**
     * Generate predictive maintenance schedule based on equipment condition
     * Reduces downtime by 50% through proactive maintenance
     */
    function generatePredictiveSchedule(equipment: Equipment[], history: MaintenanceHistory[], constraints: ScheduleConstraints): OptimizedSchedule;
    /**
     * Real-time equipment monitoring and alerts
     */
    function monitorEquipmentHealth(equipment: Equipment[], sensors: SensorReading[], history: MaintenanceHistory[]): HealthMonitoring;
    /**
     * Energy efficiency optimization through maintenance
     */
    function optimizeEnergyEfficiency(equipment: Equipment[], energyData: EnergyUsage[], history: MaintenanceHistory[]): EnergyOptimization;
    /**
     * Maintenance staff scheduling and training
     */
    function optimizeStaffScheduling(tasks: ScheduledMaintenance[], staff: MaintenanceStaff[], constraints: StaffConstraints): StaffSchedule;
}
export interface ScheduleConstraints {
    blackoutDates?: Date[];
    maxDailyHours?: number;
    budgetLimit?: number;
}
export interface SensorReading {
    equipmentId: string;
    timestamp: Date;
    type: string;
    value: number;
    unit: string;
}
export interface HealthMonitoring {
    alerts: HealthAlert[];
    recommendations: MaintenanceRecommendation[];
    overallHealth: number;
    criticalItems: number;
}
export interface HealthAlert {
    equipment: Equipment;
    type: string;
    severity: number;
    description: string;
    recommendedAction: string;
    estimatedTimeToFailure: number;
}
export interface MaintenanceRecommendation {
    equipment: Equipment;
    urgency: 'immediate' | 'soon' | 'planned';
    reason: string;
    tasks: MaintenanceTask[];
    costEstimate: number;
}
export interface EnergyUsage {
    equipmentId: string;
    timestamp: Date;
    consumption: number;
    cost: number;
}
export interface EnergyOptimization {
    inefficientEquipment: InefficiencyReport[];
    optimizationTasks: EnergyTask[];
    projectedSavings: {
        energy: number;
        cost: number;
        emissions: number;
    };
    philosophyImpact: {
        sustainabilityScore: number;
        budgetRedirection: number;
    };
}
export interface InefficiencyReport {
    equipment: Equipment;
    degradationPercent: number;
    excessCost: number;
    causes: string[];
}
export interface EnergyTask {
    equipment: Equipment;
    task: string;
    savingsPotential: number;
    cost: number;
    paybackPeriod: number;
}
export interface MaintenanceStaff {
    id: string;
    name: string;
    skills: string[];
    availability: unknown;
    hourlyRate: number;
}
export interface StaffConstraints {
    maxHoursPerWeek: number;
    maxOvertimeHours: number;
    shiftPreferences?: unknown;
}
export interface StaffSchedule {
    assignments: StaffAssignment[];
    trainingNeeds: TrainingRequirement[];
    efficiency: number;
    overtimeProjection: number;
    philosophyImpact: {
        workLifeBalance: number;
        skillDevelopment: number;
    };
}
export interface StaffAssignment {
    staff: MaintenanceStaff;
    task: ScheduledMaintenance;
    scheduledTime: Date;
    estimatedDuration: number;
}
export interface TrainingRequirement {
    skill: string;
    urgency: 'high' | 'medium' | 'low';
    candidateStaff: MaintenanceStaff[];
    estimatedDuration: number;
}
//# sourceMappingURL=maintenance-conventions.d.ts.map