import { EventEmitter, OnInit, OnDestroy, AfterViewInit, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
import { AIAgentStepEntity, AIAgentStepPathEntity } from '@memberjunction/core-entities';
import { FlowEditorComponent } from './flow-editor-integration/components/flow-editor/flow-editor.component';
import { FlowEditorService } from './flow-editor-integration/services/flow-editor.service';
import { FlowExecutorService } from './flow-editor-integration/services/flow-executor.service';
import { MJFlowTransformerService } from './flow-editor-integration/services/mj-flow-transformer.service';
import { Step } from './flow-editor-integration/models/step.model';
import { MJStep } from './flow-editor-integration/models/mj-extended.model';
import * as i0 from "@angular/core";
export declare class MJIntegratedFlowEditorComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {
    private flowEditorService;
    private flowExecutorService;
    private transformerService;
    private cdr;
    flowEditorComponent: FlowEditorComponent;
    agentId: string | null;
    steps: AIAgentStepEntity[];
    paths: AIAgentStepPathEntity[];
    EditMode: boolean;
    stepsChanged: EventEmitter<void>;
    pathsChanged: EventEmitter<void>;
    showExecutionPanel: boolean;
    selectedStep: MJStep | null;
    stepCount: number;
    connectionCount: number;
    lastSaved: Date | null;
    hasUnsavedChanges: boolean;
    saving: boolean;
    private destroy$;
    private changeDebounce$;
    constructor(flowEditorService: FlowEditorService, flowExecutorService: FlowExecutorService, transformerService: MJFlowTransformerService, cdr: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private loadFlowData;
    private subscribeToFlowChanges;
    saveAllChanges(): Promise<void>;
    private handleDeletions;
    toggleExecutionPanel(): void;
    onStepDragStart(event: any): void;
    onStepDragEnd(): void;
    onStepMoved(step: Step): void;
    onStepUpdated(updatedStep: MJStep): void;
    refreshFlow(): void;
    executeFlow(): Promise<void>;
    private loadPositionsFromLocalStorage;
    private savePositionsToLocalStorage;
    static ɵfac: i0.ɵɵFactoryDeclaration<MJIntegratedFlowEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MJIntegratedFlowEditorComponent, "mj-integrated-flow-editor", never, { "agentId": { "alias": "agentId"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "paths": { "alias": "paths"; "required": false; }; "EditMode": { "alias": "EditMode"; "required": false; }; }, { "stepsChanged": "stepsChanged"; "pathsChanged": "pathsChanged"; }, never, never, true, never>;
}
//# sourceMappingURL=mj-integrated-flow-editor.component.d.ts.map