/**
 * @license
 * Copyright 2019 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import type { BlockSvg } from '../../block_svg.js';
import { Drawer as BaseDrawer } from '../common/drawer.js';
import { Connection } from '../measurables/connection.js';
import type { InlineInput } from '../measurables/inline_input.js';
import type { Row } from '../measurables/row.js';
import type { RenderInfo } from './info.js';
/**
 * An object that draws a block based on the given rendering information.
 */
export declare class Drawer extends BaseDrawer {
    info_: RenderInfo;
    /**
     * @param block The block to render.
     * @param info An object containing all information needed to render this
     *     block.
     */
    constructor(block: BlockSvg, info: RenderInfo);
    draw(): void;
    drawOutline_(): void;
    drawLeft_(): void;
    /**
     * Add steps for the right side of a row that does not have value or
     * statement input connections.
     *
     * @param row The row to draw the side of.
     */
    protected drawRightSideRow_(row: Row): void;
    /**
     * Add steps to draw the right side of an output with a dynamic connection.
     */
    protected drawRightDynamicConnection_(): void;
    /**
     * Add steps to draw the left side of an output with a dynamic connection.
     */
    protected drawLeftDynamicConnection_(): void;
    /** Add steps to draw a flat top row. */
    protected drawFlatTop_(): void;
    /** Add steps to draw a flat bottom row. */
    protected drawFlatBottom_(): void;
    drawInlineInput_(input: InlineInput): void;
    private getInlineInputPath;
    drawStatementInput_(row: Row): void;
    /** Returns a path to highlight the given connection. */
    drawConnectionHighlightPath(measurable: Connection): SVGElement | undefined;
}
//# sourceMappingURL=drawer.d.ts.map