## API Report File for "@lumino/virtualdom"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

// @public
export type ARIAAttrNames = 'aria-activedescendant' | 'aria-atomic' | 'aria-autocomplete' | 'aria-busy' | 'aria-checked' | 'aria-colcount' | 'aria-colindex' | 'aria-colspan' | 'aria-controls' | 'aria-current' | 'aria-describedby' | 'aria-details' | 'aria-dialog' | 'aria-disabled' | 'aria-dropeffect' | 'aria-errormessage' | 'aria-expanded' | 'aria-flowto' | 'aria-grabbed' | 'aria-haspopup' | 'aria-hidden' | 'aria-invalid' | 'aria-keyshortcuts' | 'aria-label' | 'aria-labelledby' | 'aria-level' | 'aria-live' | 'aria-multiline' | 'aria-multiselectable' | 'aria-orientation' | 'aria-owns' | 'aria-placeholder' | 'aria-posinset' | 'aria-pressed' | 'aria-readonly' | 'aria-relevant' | 'aria-required' | 'aria-roledescription' | 'aria-rowcount' | 'aria-rowindex' | 'aria-rowspan' | 'aria-selected' | 'aria-setsize' | 'aria-sort' | 'aria-valuemax' | 'aria-valuemin' | 'aria-valuenow' | 'aria-valuetext' | 'role';

// @public
export type CSSPropertyNames = 'alignContent' | 'alignItems' | 'alignSelf' | 'alignmentBaseline' | 'animation' | 'animationDelay' | 'animationDirection' | 'animationDuration' | 'animationFillMode' | 'animationIterationCount' | 'animationName' | 'animationPlayState' | 'animationTimingFunction' | 'backfaceVisibility' | 'background' | 'backgroundAttachment' | 'backgroundClip' | 'backgroundColor' | 'backgroundImage' | 'backgroundOrigin' | 'backgroundPosition' | 'backgroundPositionX' | 'backgroundPositionY' | 'backgroundRepeat' | 'backgroundSize' | 'baselineShift' | 'border' | 'borderBottom' | 'borderBottomColor' | 'borderBottomLeftRadius' | 'borderBottomRightRadius' | 'borderBottomStyle' | 'borderBottomWidth' | 'borderCollapse' | 'borderColor' | 'borderImage' | 'borderImageOutset' | 'borderImageRepeat' | 'borderImageSlice' | 'borderImageSource' | 'borderImageWidth' | 'borderLeft' | 'borderLeftColor' | 'borderLeftStyle' | 'borderLeftWidth' | 'borderRadius' | 'borderRight' | 'borderRightColor' | 'borderRightStyle' | 'borderRightWidth' | 'borderSpacing' | 'borderStyle' | 'borderTop' | 'borderTopColor' | 'borderTopLeftRadius' | 'borderTopRightRadius' | 'borderTopStyle' | 'borderTopWidth' | 'borderWidth' | 'bottom' | 'boxShadow' | 'boxSizing' | 'breakAfter' | 'breakBefore' | 'breakInside' | 'captionSide' | 'clear' | 'clip' | 'clipPath' | 'clipRule' | 'color' | 'colorInterpolationFilters' | 'columnCount' | 'columnFill' | 'columnGap' | 'columnRule' | 'columnRuleColor' | 'columnRuleStyle' | 'columnRuleWidth' | 'columnSpan' | 'columnWidth' | 'columns' | 'content' | 'counterIncrement' | 'counterReset' | 'cssFloat' | 'cssText' | 'cursor' | 'direction' | 'display' | 'dominantBaseline' | 'emptyCells' | 'enableBackground' | 'fill' | 'fillOpacity' | 'fillRule' | 'filter' | 'flex' | 'flexBasis' | 'flexDirection' | 'flexFlow' | 'flexGrow' | 'flexShrink' | 'flexWrap' | 'floodColor' | 'floodOpacity' | 'font' | 'fontFamily' | 'fontFeatureSettings' | 'fontSize' | 'fontSizeAdjust' | 'fontStretch' | 'fontStyle' | 'fontVariant' | 'fontWeight' | 'glyphOrientationHorizontal' | 'glyphOrientationVertical' | 'height' | 'imeMode' | 'justifyContent' | 'kerning' | 'left' | 'letterSpacing' | 'lightingColor' | 'lineHeight' | 'listStyle' | 'listStyleImage' | 'listStylePosition' | 'listStyleType' | 'margin' | 'marginBottom' | 'marginLeft' | 'marginRight' | 'marginTop' | 'marker' | 'markerEnd' | 'markerMid' | 'markerStart' | 'mask' | 'maxHeight' | 'maxWidth' | 'minHeight' | 'minWidth' | 'msContentZoomChaining' | 'msContentZoomLimit' | 'msContentZoomLimitMax' | 'msContentZoomLimitMin' | 'msContentZoomSnap' | 'msContentZoomSnapPoints' | 'msContentZoomSnapType' | 'msContentZooming' | 'msFlowFrom' | 'msFlowInto' | 'msFontFeatureSettings' | 'msGridColumn' | 'msGridColumnAlign' | 'msGridColumnSpan' | 'msGridColumns' | 'msGridRow' | 'msGridRowAlign' | 'msGridRowSpan' | 'msGridRows' | 'msHighContrastAdjust' | 'msHyphenateLimitChars' | 'msHyphenateLimitLines' | 'msHyphenateLimitZone' | 'msHyphens' | 'msImeAlign' | 'msOverflowStyle' | 'msScrollChaining' | 'msScrollLimit' | 'msScrollLimitXMax' | 'msScrollLimitXMin' | 'msScrollLimitYMax' | 'msScrollLimitYMin' | 'msScrollRails' | 'msScrollSnapPointsX' | 'msScrollSnapPointsY' | 'msScrollSnapType' | 'msScrollSnapX' | 'msScrollSnapY' | 'msScrollTranslation' | 'msTextCombineHorizontal' | 'msTextSizeAdjust' | 'msTouchAction' | 'msTouchSelect' | 'msUserSelect' | 'msWrapFlow' | 'msWrapMargin' | 'msWrapThrough' | 'opacity' | 'order' | 'orphans' | 'outline' | 'outlineColor' | 'outlineStyle' | 'outlineWidth' | 'overflow' | 'overflowX' | 'overflowY' | 'padding' | 'paddingBottom' | 'paddingLeft' | 'paddingRight' | 'paddingTop' | 'pageBreakAfter' | 'pageBreakBefore' | 'pageBreakInside' | 'perspective' | 'perspectiveOrigin' | 'pointerEvents' | 'position' | 'quotes' | 'resize' | 'right' | 'rubyAlign' | 'rubyOverhang' | 'rubyPosition' | 'stopColor' | 'stopOpacity' | 'stroke' | 'strokeDasharray' | 'strokeDashoffset' | 'strokeLinecap' | 'strokeLinejoin' | 'strokeMiterlimit' | 'strokeOpacity' | 'strokeWidth' | 'tableLayout' | 'textAlign' | 'textAlignLast' | 'textAnchor' | 'textDecoration' | 'textIndent' | 'textJustify' | 'textKashida' | 'textKashidaSpace' | 'textOverflow' | 'textShadow' | 'textTransform' | 'textUnderlinePosition' | 'top' | 'touchAction' | 'transform' | 'transformOrigin' | 'transformStyle' | 'transition' | 'transitionDelay' | 'transitionDuration' | 'transitionProperty' | 'transitionTimingFunction' | 'unicodeBidi' | 'verticalAlign' | 'visibility' | 'webkitAlignContent' | 'webkitAlignItems' | 'webkitAlignSelf' | 'webkitAnimation' | 'webkitAnimationDelay' | 'webkitAnimationDirection' | 'webkitAnimationDuration' | 'webkitAnimationFillMode' | 'webkitAnimationIterationCount' | 'webkitAnimationName' | 'webkitAnimationPlayState' | 'webkitAnimationTimingFunction' | 'webkitAppearance' | 'webkitBackfaceVisibility' | 'webkitBackgroundClip' | 'webkitBackgroundOrigin' | 'webkitBackgroundSize' | 'webkitBorderBottomLeftRadius' | 'webkitBorderBottomRightRadius' | 'webkitBorderImage' | 'webkitBorderRadius' | 'webkitBorderTopLeftRadius' | 'webkitBorderTopRightRadius' | 'webkitBoxAlign' | 'webkitBoxDirection' | 'webkitBoxFlex' | 'webkitBoxOrdinalGroup' | 'webkitBoxOrient' | 'webkitBoxPack' | 'webkitBoxSizing' | 'webkitColumnBreakAfter' | 'webkitColumnBreakBefore' | 'webkitColumnBreakInside' | 'webkitColumnCount' | 'webkitColumnGap' | 'webkitColumnRule' | 'webkitColumnRuleColor' | 'webkitColumnRuleStyle' | 'webkitColumnRuleWidth' | 'webkitColumnSpan' | 'webkitColumnWidth' | 'webkitColumns' | 'webkitFilter' | 'webkitFlex' | 'webkitFlexBasis' | 'webkitFlexDirection' | 'webkitFlexFlow' | 'webkitFlexGrow' | 'webkitFlexShrink' | 'webkitFlexWrap' | 'webkitJustifyContent' | 'webkitOrder' | 'webkitPerspective' | 'webkitPerspectiveOrigin' | 'webkitTapHighlightColor' | 'webkitTextFillColor' | 'webkitTextSizeAdjust' | 'webkitTransform' | 'webkitTransformOrigin' | 'webkitTransformStyle' | 'webkitTransition' | 'webkitTransitionDelay' | 'webkitTransitionDuration' | 'webkitTransitionProperty' | 'webkitTransitionTimingFunction' | 'webkitUserModify' | 'webkitUserSelect' | 'webkitWritingMode' | 'whiteSpace' | 'widows' | 'width' | 'wordBreak' | 'wordSpacing' | 'wordWrap' | 'writingMode' | 'zIndex' | 'zoom';

// @public
export type ElementARIAAttrs = {
    readonly [T in ARIAAttrNames]?: string;
};

// @public
export type ElementAttrNames = 'abbr' | 'accept' | 'accept-charset' | 'accesskey' | 'action' | 'allowfullscreen' | 'alt' | 'autocomplete' | 'autofocus' | 'autoplay' | 'autosave' | 'checked' | 'cite' | 'cols' | 'colspan' | 'contenteditable' | 'controls' | 'coords' | 'crossorigin' | 'data' | 'datetime' | 'default' | 'dir' | 'dirname' | 'disabled' | 'download' | 'draggable' | 'dropzone' | 'enctype' | 'form' | 'formaction' | 'formenctype' | 'formmethod' | 'formnovalidate' | 'formtarget' | 'headers' | 'height' | 'hidden' | 'high' | 'href' | 'hreflang' | 'id' | 'inputmode' | 'integrity' | 'ismap' | 'kind' | 'label' | 'lang' | 'list' | 'loop' | 'low' | 'max' | 'maxlength' | 'media' | 'mediagroup' | 'method' | 'min' | 'minlength' | 'multiple' | 'muted' | 'name' | 'novalidate' | 'optimum' | 'pattern' | 'placeholder' | 'poster' | 'preload' | 'readonly' | 'rel' | 'required' | 'reversed' | 'rows' | 'rowspan' | 'sandbox' | 'scope' | 'selected' | 'shape' | 'size' | 'sizes' | 'span' | 'spellcheck' | 'src' | 'srcdoc' | 'srclang' | 'srcset' | 'start' | 'step' | 'tabindex' | 'target' | 'title' | 'type' | 'typemustmatch' | 'usemap' | 'value' | 'width' | 'wrap';

// @public
export type ElementAttrs = ElementBaseAttrs & ElementARIAAttrs & ElementEventAttrs & ElementSpecialAttrs;

// @public
export type ElementBaseAttrs = {
    readonly [T in ElementAttrNames]?: string;
};

// @public
export type ElementDataset = {
    readonly [name: string]: string;
};

// @public
export type ElementEventAttrs = {
    readonly [T in keyof ElementEventMap_2]?: (this: HTMLElement, event: ElementEventMap_2[T]) => any;
};

// @public
type ElementEventMap_2 = {
    onabort: UIEvent;
    onauxclick: MouseEvent;
    onblur: FocusEvent;
    oncanplay: Event;
    oncanplaythrough: Event;
    onchange: Event;
    onclick: MouseEvent;
    oncontextmenu: PointerEvent;
    oncopy: ClipboardEvent;
    oncuechange: Event;
    oncut: ClipboardEvent;
    ondblclick: MouseEvent;
    ondrag: DragEvent;
    ondragend: DragEvent;
    ondragenter: DragEvent;
    ondragexit: DragEvent;
    ondragleave: DragEvent;
    ondragover: DragEvent;
    ondragstart: DragEvent;
    ondrop: DragEvent;
    ondurationchange: Event;
    onemptied: Event;
    onended: ErrorEvent;
    onerror: ErrorEvent;
    onfocus: FocusEvent;
    oninput: Event;
    oninvalid: Event;
    onkeydown: KeyboardEvent;
    onkeypress: KeyboardEvent;
    onkeyup: KeyboardEvent;
    onload: Event;
    onloadeddata: Event;
    onloadedmetadata: Event;
    onloadend: Event;
    onloadstart: Event;
    onmousedown: MouseEvent;
    onmouseenter: MouseEvent;
    onmouseleave: MouseEvent;
    onmousemove: MouseEvent;
    onmouseout: MouseEvent;
    onmouseover: MouseEvent;
    onmouseup: MouseEvent;
    onmousewheel: WheelEvent;
    onpaste: ClipboardEvent;
    onpause: Event;
    onplay: Event;
    onplaying: Event;
    onpointercancel: PointerEvent;
    onpointerdown: PointerEvent;
    onpointerenter: PointerEvent;
    onpointerleave: PointerEvent;
    onpointermove: PointerEvent;
    onpointerout: PointerEvent;
    onpointerover: PointerEvent;
    onpointerup: PointerEvent;
    onprogress: ProgressEvent;
    onratechange: Event;
    onreset: Event;
    onscroll: UIEvent;
    onseeked: Event;
    onseeking: Event;
    onselect: UIEvent;
    onselectstart: Event;
    onstalled: Event;
    onsubmit: Event;
    onsuspend: Event;
    ontimeupdate: Event;
    onvolumechange: Event;
    onwaiting: Event;
};
export { ElementEventMap_2 as ElementEventMap }

// @public
export type ElementInlineStyle = {
    readonly [T in CSSPropertyNames]?: string;
};

// @public
export type ElementSpecialAttrs = {
    readonly key?: string;
    readonly className?: string;
    readonly htmlFor?: string;
    readonly dataset?: ElementDataset;
    readonly style?: ElementInlineStyle;
};

// @public
export function h(tag: string, ...children: h.Child[]): VirtualElement;

// @public (undocumented)
export function h(tag: string, attrs: ElementAttrs, ...children: h.Child[]): VirtualElement;

// @public (undocumented)
export function h(tag: string, renderer: VirtualElement.IRenderer, ...children: h.Child[]): VirtualElement;

// @public (undocumented)
export function h(tag: string, attrs: ElementAttrs, renderer: VirtualElement.IRenderer, ...children: h.Child[]): VirtualElement;

// @public
export namespace h {
    export type Child = (string | VirtualNode | null) | Array<string | VirtualNode | null>;
    export interface IFactory {
        // (undocumented)
        (...children: Child[]): VirtualElement;
        // (undocumented)
        (attrs: ElementAttrs, ...children: Child[]): VirtualElement;
        // (undocumented)
        (renderer: VirtualElement.IRenderer, ...children: h.Child[]): VirtualElement;
        // (undocumented)
        (attrs: ElementAttrs, renderer: VirtualElement.IRenderer, ...children: h.Child[]): VirtualElement;
    }
    const // (undocumented)
    a: IFactory;
    const // (undocumented)
    abbr: IFactory;
    const // (undocumented)
    address: IFactory;
    const // (undocumented)
    area: IFactory;
    const // (undocumented)
    article: IFactory;
    const // (undocumented)
    aside: IFactory;
    const // (undocumented)
    audio: IFactory;
    const // (undocumented)
    b: IFactory;
    const // (undocumented)
    bdi: IFactory;
    const // (undocumented)
    bdo: IFactory;
    const // (undocumented)
    blockquote: IFactory;
    const // (undocumented)
    br: IFactory;
    const // (undocumented)
    button: IFactory;
    const // (undocumented)
    canvas: IFactory;
    const // (undocumented)
    caption: IFactory;
    const // (undocumented)
    cite: IFactory;
    const // (undocumented)
    code: IFactory;
    const // (undocumented)
    col: IFactory;
    const // (undocumented)
    colgroup: IFactory;
    const // (undocumented)
    data: IFactory;
    const // (undocumented)
    datalist: IFactory;
    const // (undocumented)
    dd: IFactory;
    const // (undocumented)
    del: IFactory;
    const // (undocumented)
    dfn: IFactory;
    const // (undocumented)
    div: IFactory;
    const // (undocumented)
    dl: IFactory;
    const // (undocumented)
    dt: IFactory;
    const // (undocumented)
    em: IFactory;
    const // (undocumented)
    embed: IFactory;
    const // (undocumented)
    fieldset: IFactory;
    const // (undocumented)
    figcaption: IFactory;
    const // (undocumented)
    figure: IFactory;
    const // (undocumented)
    footer: IFactory;
    const // (undocumented)
    form: IFactory;
    const // (undocumented)
    h1: IFactory;
    const // (undocumented)
    h2: IFactory;
    const // (undocumented)
    h3: IFactory;
    const // (undocumented)
    h4: IFactory;
    const // (undocumented)
    h5: IFactory;
    const // (undocumented)
    h6: IFactory;
    const // (undocumented)
    header: IFactory;
    const // (undocumented)
    hr: IFactory;
    const // (undocumented)
    i: IFactory;
    const // (undocumented)
    iframe: IFactory;
    const // (undocumented)
    img: IFactory;
    const // (undocumented)
    input: IFactory;
    const // (undocumented)
    ins: IFactory;
    const // (undocumented)
    kbd: IFactory;
    const // (undocumented)
    label: IFactory;
    const // (undocumented)
    legend: IFactory;
    const // (undocumented)
    li: IFactory;
    const // (undocumented)
    main: IFactory;
    const // (undocumented)
    map: IFactory;
    const // (undocumented)
    mark: IFactory;
    const // (undocumented)
    meter: IFactory;
    const // (undocumented)
    nav: IFactory;
    const // (undocumented)
    noscript: IFactory;
    const // (undocumented)
    object: IFactory;
    const // (undocumented)
    ol: IFactory;
    const // (undocumented)
    optgroup: IFactory;
    const // (undocumented)
    option: IFactory;
    const // (undocumented)
    output: IFactory;
    const // (undocumented)
    p: IFactory;
    const // (undocumented)
    param: IFactory;
    const // (undocumented)
    pre: IFactory;
    const // (undocumented)
    progress: IFactory;
    const // (undocumented)
    q: IFactory;
    const // (undocumented)
    rp: IFactory;
    const // (undocumented)
    rt: IFactory;
    const // (undocumented)
    ruby: IFactory;
    const // (undocumented)
    s: IFactory;
    const // (undocumented)
    samp: IFactory;
    const // (undocumented)
    section: IFactory;
    const // (undocumented)
    select: IFactory;
    const // (undocumented)
    small: IFactory;
    const // (undocumented)
    source: IFactory;
    const // (undocumented)
    span: IFactory;
    const // (undocumented)
    strong: IFactory;
    const // (undocumented)
    sub: IFactory;
    const // (undocumented)
    summary: IFactory;
    const // (undocumented)
    sup: IFactory;
    const // (undocumented)
    table: IFactory;
    const // (undocumented)
    tbody: IFactory;
    const // (undocumented)
    td: IFactory;
    const // (undocumented)
    textarea: IFactory;
    const // (undocumented)
    tfoot: IFactory;
    const // (undocumented)
    th: IFactory;
    const // (undocumented)
    thead: IFactory;
    const // (undocumented)
    time: IFactory;
    const // (undocumented)
    title: IFactory;
    const // (undocumented)
    tr: IFactory;
    const // (undocumented)
    track: IFactory;
    const // (undocumented)
    u: IFactory;
    const // (undocumented)
    ul: IFactory;
    const // (undocumented)
    var_: IFactory;
    const // (undocumented)
    video: IFactory;
    const // (undocumented)
    wbr: IFactory;
}

// @public
export function hpass(tag: string, renderer?: VirtualElementPass.IRenderer): VirtualElementPass;

// @public (undocumented)
export function hpass(tag: string, attrs: ElementAttrs, renderer?: VirtualElementPass.IRenderer): VirtualElementPass;

// @public
export namespace VirtualDOM {
    export function realize(node: VirtualText): Text;
    // (undocumented)
    export function realize(node: VirtualElement): HTMLElement;
    export function render(content: VirtualNode | ReadonlyArray<VirtualNode> | null, host: HTMLElement): void;
}

// @public
export class VirtualElement {
    constructor(tag: string, attrs: ElementAttrs, children: ReadonlyArray<VirtualNode>, renderer?: VirtualElement.IRenderer);
    readonly attrs: ElementAttrs;
    readonly children: ReadonlyArray<VirtualNode>;
    readonly renderer: VirtualElement.IRenderer | undefined;
    readonly tag: string;
    readonly type: "element";
}

// @public (undocumented)
export namespace VirtualElement {
    export type IRenderer = {
        render: (host: HTMLElement, options?: {
            attrs?: ElementAttrs;
            children?: ReadonlyArray<VirtualNode>;
        }) => void;
        unrender?: (host: HTMLElement, options?: {
            attrs?: ElementAttrs;
            children?: ReadonlyArray<VirtualNode>;
        }) => void;
    };
}

// @public
export class VirtualElementPass extends VirtualElement {
    constructor(tag: string, attrs: ElementAttrs, renderer: VirtualElementPass.IRenderer | null);
}

// @public (undocumented)
export namespace VirtualElementPass {
    export type IRenderer = VirtualElement.IRenderer;
}

// @public
export type VirtualNode = VirtualElement | VirtualText;

// @public
export class VirtualText {
    constructor(content: string);
    readonly content: string;
    readonly type: "text";
}

// (No @packageDocumentation comment for this package)

```
