UNPKG

business-as-code

Version:

Primitives for expressing business logic and processes as code

112 lines 3.44 kB
/** * 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