import { type ReactElement } from 'react';
import type { WorkflowStepDto, WorkflowTriggerBindingDto, WorkflowActionDefinitionDto } from '@/services/api/communicationsApi';
export declare const STEP_DROP_ZONE_PREFIX = "canvas-step-zone-";
export declare const stepDropZoneId: (position: number) => string;
/**
 * Pipeline-style canvas that renders the workflow as a vertical sequence of nodes.
 * - Trigger chips at the top in {@link WorkflowTriggerSection}.
 * - Each step is a {@link WorkflowNodeCard} connected by a vertical line.
 * - Condition steps render as a two-branch fork via {@link WorkflowConditionBranch}.
 * - A "Workflow ends" marker closes the visible path.
 *
 * Steps that are targeted by a Condition's true/false branches are NOT rendered
 * a second time in the main pipeline — they appear inside their parent fork.
 */
export interface CanvasSelection {
    readonly kind: 'binding' | 'step';
    readonly id: string;
}
interface WorkflowCanvasProps {
    readonly bindings: readonly WorkflowTriggerBindingDto[];
    readonly steps: readonly WorkflowStepDto[];
    readonly actions: readonly WorkflowActionDefinitionDto[];
    readonly selection: CanvasSelection | null;
    readonly onSelect: (selection: CanvasSelection | null) => void;
    readonly onAddBinding: () => void;
    readonly onRemoveBinding: (bindingId: string) => void;
    readonly readOnly?: boolean;
}
export declare function WorkflowCanvas({ bindings, steps, actions, selection, onSelect, onAddBinding, onRemoveBinding, readOnly }: WorkflowCanvasProps): ReactElement;
export {};
//# sourceMappingURL=WorkflowCanvas.d.ts.map