import { AIAgentStepEntity, AIAgentStepPathEntity } from '@memberjunction/core-entities';
import { MJStep, MJConnection } from '../models/mj-extended.model';
import * as i0 from "@angular/core";
export declare class MJFlowTransformerService {
    /**
     * Transform MJ entities to standalone flow editor models
     */
    transformToStandaloneModels(mjSteps: AIAgentStepEntity[], mjPaths: AIAgentStepPathEntity[]): {
        steps: MJStep[];
        connections: MJConnection[];
    };
    /**
     * Transform a single MJ step entity to standalone Step model
     */
    private transformStep;
    /**
     * Transform a single MJ path entity to standalone Connection model
     */
    private transformPath;
    /**
     * Map MJ step type to standalone step type
     */
    private mapStepType;
    /**
     * Map MJ step to selected option for the standalone model
     */
    private mapSelectedOption;
    /**
     * Extract property values from MJ step
     */
    private extractPropertyValues;
    /**
     * Transform standalone models back to MJ entities for saving
     */
    transformToMJEntities(steps: MJStep[], connections: MJConnection[], existingMJSteps: AIAgentStepEntity[], existingMJPaths: AIAgentStepPathEntity[]): {
        stepsToUpdate: AIAgentStepEntity[];
        pathsToUpdate: AIAgentStepPathEntity[];
        stepsToCreate: Partial<AIAgentStepEntity>[];
        pathsToCreate: Partial<AIAgentStepPathEntity>[];
    };
    /**
     * Update existing MJ step with data from standalone model
     */
    private updateMJStep;
    /**
     * Create new MJ step from standalone model
     */
    private createMJStep;
    /**
     * Update existing MJ path with data from standalone model
     */
    private updateMJPath;
    /**
     * Create new MJ path from standalone model
     */
    private createMJPath;
    /**
     * Reverse map standalone step type to MJ step type
     */
    private reverseMapStepType;
    /**
     * Generate numeric ID from string UUID
     * This is needed because the standalone editor uses numeric IDs
     */
    private generateNumericId;
    /**
     * Extract a readable label from a condition expression
     */
    private extractConditionLabel;
    /**
     * Calculate smart positions for steps that don't have valid positions
     */
    private calculateSmartPositions;
    static ɵfac: i0.ɵɵFactoryDeclaration<MJFlowTransformerService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MJFlowTransformerService>;
}
//# sourceMappingURL=mj-flow-transformer.service.d.ts.map