import { ProcessDefinition, Activity, ProcessTrigger, PersonaType } from './types.js';
import { ProcessStore } from './process-store.js';
interface BuilderSession {
    id: string;
    currentStep: number;
    processData: Partial<ProcessDefinition>;
    responses: Record<string, any>;
    suggestedTriggers?: ProcessTrigger[];
}
export declare class ProcessBuilder {
    private sessions;
    private store;
    private triggerEngine;
    constructor(store: ProcessStore);
    createProcess(options: {
        name: string;
        description?: string;
        persona?: PersonaType;
        activities?: Activity[];
        triggers?: ProcessTrigger[];
        variables?: Record<string, any>;
    }): Promise<ProcessDefinition>;
    addActivity(processId: string, activity: Activity, position?: number): Promise<ProcessDefinition>;
    updateActivity(processId: string, activityId: string, updates: Partial<Activity>): Promise<ProcessDefinition>;
    removeActivity(processId: string, activityId: string): Promise<ProcessDefinition>;
    addTrigger(processId: string, trigger: ProcessTrigger): Promise<ProcessDefinition>;
    updateTrigger(processId: string, triggerId: string, updates: Partial<ProcessTrigger>): Promise<ProcessDefinition>;
    removeTrigger(processId: string, triggerId: string): Promise<ProcessDefinition>;
    cloneProcess(processId: string, newName: string, options?: {
        persona?: string;
    }): Promise<ProcessDefinition>;
    private steps;
    startProcessBuilder(): Promise<BuilderSession>;
    continueBuilder(sessionId: string, response: any): Promise<BuilderResult>;
    formatCurrentStep(sessionId: string): string;
    cancelSession(sessionId: string): void;
    private buildProcessFromSession;
    private generateSessionId;
    private generateId;
    setVariables(processId: string, variables: Record<string, any>, merge?: boolean): Promise<ProcessDefinition>;
    validateProcess(processId: string): Promise<{
        isValid: boolean;
        errors: Array<{
            type: 'error';
            field?: string;
            message: string;
        }>;
        warnings: Array<{
            type: 'warning';
            field?: string;
            message: string;
        }>;
    }>;
    private isValidCondition;
    private isValidCronExpression;
    exportProcess(processId: string): Promise<any>;
    importProcess(data: any, options?: {
        namePrefix?: string;
    }): Promise<ProcessDefinition>;
}
interface BuilderResult {
    valid: boolean;
    message?: string;
    completed?: boolean;
    process?: ProcessDefinition;
}
export {};
//# sourceMappingURL=process-builder.d.ts.map