import { ApiRouteConfig, CronConfig, EventConfig, Flow, Step } from './types';
import { Printer } from './printer';
type FlowEvent = 'flow-created' | 'flow-removed' | 'flow-updated';
type StepEvent = 'step-created' | 'step-removed' | 'step-updated';
export declare class LockedData {
    readonly baseDir: string;
    flows: Record<string, Flow>;
    activeSteps: Step[];
    devSteps: Step[];
    printer: Printer;
    private stepsMap;
    private handlers;
    private stepHandlers;
    constructor(baseDir: string);
    saveTypes(): void;
    on(event: FlowEvent, handler: (flowName: string) => void): void;
    onStep(event: StepEvent, handler: (step: Step) => void): void;
    eventSteps(): Step<EventConfig>[];
    apiSteps(): Step<ApiRouteConfig>[];
    cronSteps(): Step<CronConfig>[];
    pythonSteps(): Step[];
    tsSteps(): Step[];
    updateStep(oldStep: Step, newStep: Step, options?: {
        disableTypeCreation?: boolean;
    }): boolean;
    createStep(step: Step, options?: {
        disableTypeCreation?: boolean;
    }): boolean;
    deleteStep(step: Step, options?: {
        disableTypeCreation?: boolean;
    }): void;
    private createFlow;
    private removeFlow;
    private onFlowUpdated;
    private isValidStep;
}
export {};
