import type { Properties as CssProperties } from 'csstype';
export { EdgeRender, EdgeRenderConfig, Views } from './handle';
export { AssetConfig } from './assets';
import { JsxChunk, classNameType } from './jsx';
declare type AttributeReferrerPolicy = '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
declare type InputType = 'button' | 'checkbox' | 'color' | 'date' | 'datetime' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'radio' | 'range' | 'reset' | 'search' | 'submit' | 'tel' | 'text' | 'time' | 'url' | 'week';
declare global {
    namespace JSX {
        type Props = Record<string, any>;
        type Component = (props: Props) => Element;
        type ChildTypes = Component | HtmlTag | string | number | boolean;
        type Element = JsxChunk | Promise<JsxChunk>;
        interface TagChildrenAttribute {
            children: unknown;
        }
        interface BaseTag {
            accessKey?: string;
            className?: classNameType;
            contentEditable?: boolean | 'inherit';
            contextMenu?: string;
            dir?: string;
            draggable?: boolean;
            hidden?: boolean;
            id?: string;
            lang?: string;
            placeholder?: string;
            slot?: string;
            spellCheck?: boolean;
            style?: CssProperties;
            tabIndex?: number;
            title?: string;
            translate?: 'yes' | 'no';
            radioGroup?: string;
            role?: string;
            about?: string;
            datatype?: string;
            inlist?: any;
            prefix?: string;
            property?: string;
            resource?: string;
            typeof?: string;
            vocab?: string;
            autoCapitalize?: string;
            autoCorrect?: string;
            autoSave?: string;
            color?: string;
            itemProp?: string;
            itemScope?: boolean;
            itemType?: string;
            itemID?: string;
            itemRef?: string;
            results?: number;
            security?: string;
            unselectable?: 'on' | 'off';
            /**
             * Hints at the type of data that might be entered by the user while editing the Tag or its contents
             * @see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
             */
            inputMode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search';
            /**
             * Specify that a standard HTML Tag should behave like a defined custom built-in Tag
             * @see https://html.spec.whatwg.org/multipage/custom-Tags.html#attr-is
             */
            is?: string;
            data?: Record<string, any>;
            hxGet?: string;
            hxPost?: string;
            hxPut?: string;
            hxPatch?: string;
            hxDelete?: string;
            hxSwap?: 'innerHTML' | 'outerHTML' | 'afterbegin' | 'beforebegin' | 'beforeend' | 'afterend';
            hxSwapOob?: boolean;
            hxTarget?: string;
            hxTrigger?: string;
            hxSelect?: string;
            hxBoost?: boolean;
            hxPushUrl?: 'true';
            hxPrompt?: string;
            hxConfirm?: string;
            hxIndicator?: string;
        }
        interface GenericTag extends BaseTag {
            children?: ChildTypes | ChildTypes[];
            [key: string]: any;
        }
        interface EmptyTag extends BaseTag {
            children?: never;
            [key: string]: any;
        }
        interface AnchorTag extends BaseTag {
            download?: any;
            href?: string;
            hrefLang?: string;
            media?: string;
            ping?: string;
            rel?: string;
            target?: string;
            type?: string;
            referrerPolicy?: AttributeReferrerPolicy;
            children?: ChildTypes | ChildTypes[];
        }
        interface ButtonTag extends BaseTag {
            autoFocus?: boolean;
            disabled?: boolean;
            form?: string;
            formAction?: string;
            formEncType?: string;
            formMethod?: string;
            formNoValidate?: boolean;
            formTarget?: string;
            name?: string;
            type?: 'submit' | 'reset' | 'button';
            value?: string | ReadonlyArray<string> | number;
            children?: ChildTypes | ChildTypes[];
        }
        interface FormTag extends BaseTag {
            acceptCharset?: string;
            action?: string;
            autoComplete?: string;
            encType?: string;
            method?: string;
            name?: string;
            noValidate?: boolean;
            target?: string;
            children?: ChildTypes | ChildTypes[];
        }
        interface HtmlHtmlTag extends BaseTag {
            manifest?: string;
            children?: ChildTypes | ChildTypes[];
        }
        interface IframeTag extends BaseTag {
            allow?: string;
            allowFullScreen?: boolean;
            allowTransparency?: boolean;
            /** @deprecated */
            frameBorder?: number | string;
            height?: number | string;
            loading?: 'eager' | 'lazy';
            /** @deprecated */
            marginHeight?: number;
            /** @deprecated */
            marginWidth?: number;
            name?: string;
            referrerPolicy?: AttributeReferrerPolicy;
            sandbox?: string;
            /** @deprecated */
            scrolling?: string;
            seamless?: boolean;
            src?: string;
            srcDoc?: string;
            width?: number | string;
            children?: ChildTypes | ChildTypes[];
        }
        interface ImageTag extends BaseTag {
            alt?: string;
            crossOrigin?: 'anonymous' | 'use-credentials' | '';
            decoding?: 'async' | 'auto' | 'sync';
            height?: number | string;
            loading?: 'eager' | 'lazy';
            referrerPolicy?: AttributeReferrerPolicy;
            sizes?: string;
            src?: string;
            srcSet?: string;
            useMap?: string;
            width?: number | string;
        }
        interface InputTag extends BaseTag {
            accept?: string;
            alt?: string;
            autoComplete?: string;
            autoFocus?: boolean;
            capture?: boolean | string;
            checked?: boolean;
            dirname?: string;
            disabled?: boolean;
            enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
            form?: string;
            formAction?: string;
            formEncType?: string;
            formMethod?: string;
            formNoValidate?: boolean;
            formTarget?: string;
            height?: number | string;
            list?: string;
            max?: number | string;
            maxLength?: number;
            min?: number | string;
            minLength?: number;
            multiple?: boolean;
            name?: string;
            pattern?: string;
            placeholder?: string;
            readOnly?: boolean;
            required?: boolean;
            size?: number;
            src?: string;
            step?: number | string;
            type?: InputType;
            value?: string | ReadonlyArray<string> | number | null;
            width?: number | string;
        }
        interface LabelTag extends BaseTag {
            form?: string;
            htmlFor?: string;
            children?: ChildTypes | ChildTypes[];
        }
        interface LinkTag extends BaseTag {
            as?: string;
            crossOrigin?: string;
            href?: string;
            hrefLang?: string;
            integrity?: string;
            media?: string;
            referrerPolicy?: AttributeReferrerPolicy;
            rel?: string;
            sizes?: string;
            type?: string;
            charSet?: string;
        }
        interface MetaTag extends BaseTag {
            charSet?: string;
            content?: string;
            httpEquiv?: string;
            name?: string;
        }
        type HtmlTag = GenericTag | EmptyTag | AnchorTag | ButtonTag | FormTag | HtmlHtmlTag | IframeTag | ImageTag | InputTag | LabelTag | LinkTag | MetaTag;
        interface IntrinsicElements {
            a: AnchorTag;
            abbr: GenericTag;
            address: GenericTag;
            area: EmptyTag;
            article: GenericTag;
            aside: GenericTag;
            audio: GenericTag;
            b: GenericTag;
            base: EmptyTag;
            bdi: GenericTag;
            bdo: GenericTag;
            big: GenericTag;
            blockquote: GenericTag;
            body: GenericTag;
            br: EmptyTag;
            button: ButtonTag;
            canvas: GenericTag;
            caption: GenericTag;
            cite: GenericTag;
            code: GenericTag;
            col: EmptyTag;
            colgroup: GenericTag;
            data: GenericTag;
            datalist: GenericTag;
            dd: GenericTag;
            del: GenericTag;
            details: GenericTag;
            dfn: GenericTag;
            dialog: GenericTag;
            div: GenericTag;
            dl: GenericTag;
            dt: GenericTag;
            em: GenericTag;
            embed: EmptyTag;
            fieldset: GenericTag;
            figcaption: GenericTag;
            figure: GenericTag;
            footer: GenericTag;
            form: FormTag;
            h1: GenericTag;
            h2: GenericTag;
            h3: GenericTag;
            h4: GenericTag;
            h5: GenericTag;
            h6: GenericTag;
            head: GenericTag;
            header: GenericTag;
            hgroup: GenericTag;
            hr: EmptyTag;
            html: HtmlHtmlTag;
            i: GenericTag;
            iframe: IframeTag;
            img: ImageTag;
            input: InputTag;
            ins: GenericTag;
            kbd: GenericTag;
            keygen: GenericTag;
            label: LabelTag;
            legend: GenericTag;
            li: GenericTag;
            link: LinkTag;
            main: GenericTag;
            map: GenericTag;
            mark: GenericTag;
            menu: GenericTag;
            menuitem: GenericTag;
            meta: MetaTag;
            meter: GenericTag;
            nav: GenericTag;
            noindex: GenericTag;
            noscript: GenericTag;
            object: GenericTag;
            ol: GenericTag;
            optgroup: GenericTag;
            option: GenericTag;
            output: GenericTag;
            p: GenericTag;
            param: EmptyTag;
            picture: GenericTag;
            pre: GenericTag;
            progress: GenericTag;
            q: GenericTag;
            rp: GenericTag;
            rt: GenericTag;
            ruby: GenericTag;
            s: GenericTag;
            samp: GenericTag;
            slot: GenericTag;
            script: GenericTag;
            section: GenericTag;
            select: GenericTag;
            small: GenericTag;
            source: EmptyTag;
            span: GenericTag;
            strong: GenericTag;
            style: GenericTag;
            sub: GenericTag;
            summary: GenericTag;
            sup: GenericTag;
            table: GenericTag;
            template: GenericTag;
            tbody: GenericTag;
            td: GenericTag;
            textarea: GenericTag;
            tfoot: GenericTag;
            th: GenericTag;
            thead: GenericTag;
            time: GenericTag;
            title: GenericTag;
            tr: GenericTag;
            track: EmptyTag;
            u: GenericTag;
            ul: GenericTag;
            var: GenericTag;
            video: GenericTag;
            wbr: EmptyTag;
            webview: GenericTag;
            svg: GenericTag;
            animate: GenericTag;
            animateMotion: GenericTag;
            animateTransform: GenericTag;
            circle: GenericTag;
            clipPath: GenericTag;
            defs: GenericTag;
            desc: GenericTag;
            ellipse: GenericTag;
            feBlend: GenericTag;
            feColorMatrix: GenericTag;
            feComponentTransfer: GenericTag;
            feComposite: GenericTag;
            feConvolveMatrix: GenericTag;
            feDiffuseLighting: GenericTag;
            feDisplacementMap: GenericTag;
            feDistantLight: GenericTag;
            feDropShadow: GenericTag;
            feFlood: GenericTag;
            feFuncA: GenericTag;
            feFuncB: GenericTag;
            feFuncG: GenericTag;
            feFuncR: GenericTag;
            feGaussianBlur: GenericTag;
            feImage: GenericTag;
            feMerge: GenericTag;
            feMergeNode: GenericTag;
            feMorphology: GenericTag;
            feOffset: GenericTag;
            fePointLight: GenericTag;
            feSpecularLighting: GenericTag;
            feSpotLight: GenericTag;
            feTile: GenericTag;
            feTurbulence: GenericTag;
            filter: GenericTag;
            foreignObject: GenericTag;
            g: GenericTag;
            image: GenericTag;
            line: GenericTag;
            linearGradient: GenericTag;
            marker: GenericTag;
            mask: GenericTag;
            metadata: GenericTag;
            mpath: GenericTag;
            path: GenericTag;
            pattern: GenericTag;
            polygon: GenericTag;
            polyline: GenericTag;
            radialGradient: GenericTag;
            rect: GenericTag;
            stop: GenericTag;
            switch: GenericTag;
            symbol: GenericTag;
            text: GenericTag;
            textPath: GenericTag;
            tspan: GenericTag;
            use: GenericTag;
            view: GenericTag;
        }
    }
}
