import { Express } from 'express';
import { Emit } from './types';
import { LockedData } from './locked-data';
type FlowListResponse = {
    id: string;
    name: string;
};
export type EdgeData = {
    variant: 'event' | 'virtual';
    topic: string;
    label?: string;
    labelVariant?: 'default' | 'conditional';
};
type FlowEdge = {
    id: string;
    source: string;
    target: string;
    data: EdgeData;
};
type FlowStepResponse = {
    id: string;
    name: string;
    type: 'event' | 'api' | 'noop' | 'cron';
    description?: string;
    subscribes?: string[];
    emits: Emit[];
    virtualEmits?: Emit[];
    action?: 'webhook';
    webhookUrl?: string;
    bodySchema?: unknown;
    language?: string;
    nodeComponentPath?: string;
    filePath?: string;
    cronExpression?: string;
};
type FlowResponse = FlowListResponse & {
    steps: FlowStepResponse[];
    edges: FlowEdge[];
};
export declare const flowsEndpoint: (lockedData: LockedData, app: Express) => void;
export declare const generateFlowsList: (lockedData: LockedData) => FlowResponse[];
export {};
