/**
 * Logic expression parsing and tree layout — TS port of Python `schemdraw.parsing`.
 *
 * Exports:
 *  - `DrawTree`, `buchheim` — Buchheim-Reingold-Tilford tree layout
 *  - `LogicTree` — intermediate tree for logic gates
 *  - `logicparse` — parse a logic string into a Drawing of logic gates
 */
import { Drawing } from "../drawing.js";
export declare class LogicTree {
    node: string;
    children: LogicTree[];
    constructor(node: string, ...children: LogicTree[]);
    [Symbol.iterator](): Iterator<LogicTree>;
}
export declare class DrawTree {
    x: number;
    y: number;
    node: string;
    children: DrawTree[];
    parent: DrawTree | null;
    thread: DrawTree | null;
    mod: number;
    ancestor: DrawTree;
    change: number;
    shift: number;
    number: number;
    private _lmostSibling;
    constructor(tree: LogicTree, parent?: DrawTree | null, depth?: number, number?: number);
    left(): DrawTree | null;
    right(): DrawTree | null;
    lbrother(): DrawTree | null;
    get lmostSibling(): DrawTree | null;
}
export declare function buchheim(tree: LogicTree): DrawTree;
export declare function logicparse(expr: string, opts?: {
    gateW?: number;
    gateH?: number;
    outlabel?: string;
}): Drawing;
