import { Element } from "../element.js";
declare class TubeBase extends Element {
    constructor(userParams?: Record<string, unknown>);
    protected _drawEnvelope(height: number, width: number, split?: string): void;
    protected _drawElements(x: number, height: number, width: number, grids: number, cathode: string, anodetype: string, anchorid?: string): number;
    protected _drawHeat(cat_y: number, height: number): void;
}
export declare class VacuumTube extends TubeBase {
    constructor(opts?: {
        cathode?: string;
        anodetype?: string;
        grids?: number;
        heater?: boolean;
        split?: string;
        [key: string]: unknown;
    });
}
export declare class DualVacuumTube extends TubeBase {
    constructor(opts?: {
        cathode?: string;
        anodetype?: string;
        grids_left?: number;
        grids_right?: number;
        heater?: boolean;
        [key: string]: unknown;
    });
}
export declare class NixieTube extends TubeBase {
    constructor(opts?: {
        anodes?: number;
        cathode?: string;
        anodetype?: string;
        grid?: boolean;
        [key: string]: unknown;
    });
    private _drawNixieAnodes;
    private _drawNixieGrid;
    private _drawNixieCathode;
}
export declare class TubeDiode extends VacuumTube {
    constructor(opts?: {
        heater?: boolean;
        split?: string;
        [key: string]: unknown;
    });
}
export declare class Triode extends VacuumTube {
    constructor(opts?: {
        heater?: boolean;
        split?: string;
        [key: string]: unknown;
    });
}
export declare class Tetrode extends VacuumTube {
    constructor(opts?: {
        heater?: boolean;
        split?: string;
        [key: string]: unknown;
    });
}
export declare class Pentode extends VacuumTube {
    constructor(opts?: {
        strap?: boolean;
        heater?: boolean;
        split?: string;
        [key: string]: unknown;
    });
}
export {};
