/**
 * Swim lane visualization for activities that may run in sequence or in parallel.
 * This utility helps placing activities into the lane, so they do not overlap.
 */
export declare class SwimLane {
    separation: number;
    /** Lanes and the width at which the last step in each of them ends. */
    private subLaneEnds;
    /**
     * Constructs the swim lane
     * @param separation separation enforced between bars in the sane lane (default is 0)
     */
    constructor(separation?: number);
    /**
     * Finds the first available lane that is not already occupied at offset leftOffset
     * @param leftOffset offset from the left for the new step to be placed
     * @param width step width
     */
    placeNext(leftOffset: number, width: number): number;
    laneCount(): number;
    laneEnd(idx: number): number;
}
