/**
 * Product definition and management
 */
import type { ProductDefinition, RoadmapItem } from './types.js';
/**
 * Define a product with pricing, features, and roadmap
 *
 * @example
 * ```ts
 * const product = Product({
 *   name: 'Widget Pro',
 *   description: 'Enterprise-grade widget management platform',
 *   category: 'SaaS',
 *   targetSegment: 'Enterprise',
 *   valueProposition: 'Reduce widget management costs by 50%',
 *   pricingModel: 'subscription',
 *   price: 99,
 *   currency: 'USD',
 *   cogs: 20,
 *   features: [
 *     'Unlimited widgets',
 *     'Advanced analytics',
 *     'API access',
 *     '24/7 support',
 *   ],
 *   roadmap: [
 *     {
 *       name: 'Mobile app',
 *       description: 'Native iOS and Android apps',
 *       targetDate: new Date('2024-09-01'),
 *       priority: 'high',
 *       status: 'in-progress',
 *     },
 *     {
 *       name: 'AI-powered insights',
 *       description: 'Automated widget optimization suggestions',
 *       targetDate: new Date('2024-12-01'),
 *       priority: 'high',
 *       status: 'planned',
 *     },
 *   ],
 * })
 * ```
 */
export declare function Product(definition: ProductDefinition): ProductDefinition;
/**
 * Calculate gross margin for a product
 */
export declare function calculateGrossMargin(product: ProductDefinition): number;
/**
 * Calculate gross profit for a product
 */
export declare function calculateGrossProfit(product: ProductDefinition, unitsSold: number): number;
/**
 * Get roadmap items by status
 */
export declare function getRoadmapByStatus(product: ProductDefinition, status: RoadmapItem['status']): RoadmapItem[];
/**
 * Get roadmap items by priority
 */
export declare function getRoadmapByPriority(product: ProductDefinition, priority: RoadmapItem['priority']): RoadmapItem[];
/**
 * Get overdue roadmap items
 */
export declare function getOverdueRoadmapItems(product: ProductDefinition): RoadmapItem[];
/**
 * Update roadmap item status
 */
export declare function updateRoadmapItem(product: ProductDefinition, itemName: string, updates: Partial<RoadmapItem>): ProductDefinition;
/**
 * Add feature to product
 */
export declare function addFeature(product: ProductDefinition, feature: string): ProductDefinition;
/**
 * Remove feature from product
 */
export declare function removeFeature(product: ProductDefinition, feature: string): ProductDefinition;
/**
 * Validate product definition
 */
export declare function validateProduct(product: ProductDefinition): {
    valid: boolean;
    errors: string[];
};
//# sourceMappingURL=product.d.ts.map