export { Renderer, PropType, FElement, FElem, FNode, FChild } from "./renderer";
export { handle, get, handlers, EventBinder, Compilable } from "./catalyst";
export { stasis } from "./stasis";
import { Renderer, FElement, FElem, FSVGElement } from "./renderer";
declare global {
    type PARRArray<T> = PARRLabel<T> & [any, ...(string | number)[]];
    interface PARRLabel<T> {
        __type: T;
        slice(end?: number): PARRArray<T>;
        slice(start?: number, end?: number): PARRArray<T>;
    }
    function PARR<T>(x: T): PARRArray<T>;
}
export declare let renderer: Renderer;
declare let _handlers: {
    [id: string]: (event: Event, elem: FElement) => unknown;
};
declare global {
    namespace React {
        let renderer: Renderer;
        let handlers: typeof _handlers;
        function createElement(tagname: string, props?: FElement, ...children: (FElem | string | undefined)[]): FElem;
    }
    namespace JSX {
        interface ElementChildrenAttribute {
            children: {};
        }
        interface IntrinsicElements {
            [tag: string]: FElement;
            div: FElement;
            section: FElement;
            span: FElement;
            button: FElement;
            a: FElement;
            nav: FElement;
            ul: FElement;
            ol: FElement;
            li: FElement;
            input: FElement;
            textarea: FElement;
            svg: FSVGElement & {
                viewBox: string;
                height?: number | string;
                width?: number | string;
                preserveAspectRatio?: string;
                x?: number | string;
                y?: number | string;
            };
            g: FSVGElement;
            circle: FSVGElement & {
                cx: number | string;
                cy: number | string;
                r: number | string;
                pathLength?: number | string;
            };
            ellipse: FSVGElement & {
                cx: number | string;
                cy: number | string;
                rx: number | string;
                ry: number | string;
                pathLength?: number | string;
            };
            line: FSVGElement & {
                x1: number | string;
                y1: number | string;
                x2: number | string;
                y2: number | string;
                pathLength?: number | string;
            };
            polygon: FSVGElement & {
                points: string;
                pathLength?: number | string;
            };
            polyline: FSVGElement & {
                points: string;
                pathLength?: number | string;
            };
            path: FSVGElement & {
                d: string;
            };
            rect: FSVGElement & {
                x: number | string;
                y: number | string;
                width: number | string;
                height: number | string;
                rx?: number | string;
                ry?: number | string;
                pathLength?: number | string;
            };
        }
    }
}
