/**
 * Business process definition and management
 */
import type { ProcessDefinition, ProcessStep, ProcessMetric } from './types.js';
/**
 * Define a business process with steps, inputs, outputs, and metrics
 *
 * @example
 * ```ts
 * const process = Process({
 *   name: 'Customer Onboarding',
 *   description: 'Process for onboarding new customers',
 *   category: 'core',
 *   owner: 'Customer Success Team',
 *   steps: [
 *     {
 *       order: 1,
 *       name: 'Welcome Email',
 *       description: 'Send personalized welcome email',
 *       responsible: 'CS Manager',
 *       duration: '5 minutes',
 *       automationLevel: 'automated',
 *     },
 *     {
 *       order: 2,
 *       name: 'Initial Setup Call',
 *       description: 'Schedule and conduct setup call',
 *       responsible: 'CS Rep',
 *       duration: '30 minutes',
 *       automationLevel: 'manual',
 *     },
 *     {
 *       order: 3,
 *       name: 'Account Configuration',
 *       description: 'Configure customer account settings',
 *       responsible: 'CS Rep',
 *       duration: '15 minutes',
 *       automationLevel: 'semi-automated',
 *     },
 *   ],
 *   inputs: ['Customer Information', 'Subscription Plan'],
 *   outputs: ['Configured Account', 'Training Materials'],
 *   metrics: [
 *     {
 *       name: 'Time to First Value',
 *       description: 'Time from signup to first successful use',
 *       target: 24,
 *       unit: 'hours',
 *     },
 *     {
 *       name: 'Onboarding Completion Rate',
 *       description: 'Percentage of customers completing onboarding',
 *       target: 90,
 *       unit: 'percent',
 *     },
 *   ],
 * })
 * ```
 */
export declare function Process(definition: ProcessDefinition): ProcessDefinition;
/**
 * Get process steps in order
 */
export declare function getStepsInOrder(process: ProcessDefinition): ProcessStep[];
/**
 * Get steps by automation level
 */
export declare function getStepsByAutomationLevel(process: ProcessDefinition, level: ProcessStep['automationLevel']): ProcessStep[];
/**
 * Calculate total process duration in minutes
 */
export declare function calculateTotalDuration(process: ProcessDefinition): number;
/**
 * Format minutes to human-readable duration
 */
export declare function formatDuration(minutes: number): string;
/**
 * Calculate automation percentage
 */
export declare function calculateAutomationPercentage(process: ProcessDefinition): number;
/**
 * Get metric by name
 */
export declare function getMetric(process: ProcessDefinition, name: string): ProcessMetric | undefined;
/**
 * Check if metric meets target
 */
export declare function meetsTarget(metric: ProcessMetric): boolean;
/**
 * Calculate metric achievement percentage
 */
export declare function calculateMetricAchievement(metric: ProcessMetric): number;
/**
 * Update metric current value
 */
export declare function updateMetric(process: ProcessDefinition, metricName: string, currentValue: number): ProcessDefinition;
/**
 * Add step to process
 */
export declare function addStep(process: ProcessDefinition, step: ProcessStep): ProcessDefinition;
/**
 * Remove step from process
 */
export declare function removeStep(process: ProcessDefinition, stepOrder: number): ProcessDefinition;
/**
 * Validate process definition
 */
export declare function validateProcess(process: ProcessDefinition): {
    valid: boolean;
    errors: string[];
};
//# sourceMappingURL=process.d.ts.map