import React from 'react'; import { TermElement } from '../dom/TermElement'; import { TermCanvas } from '../elements/TermCanvas'; import { TermEditor } from '../elements/TermEditor'; import { TermForm } from '../elements/TermForm'; import { TermInput } from '../elements/TermInput'; import { TermPty } from '../elements/TermPty'; import { EventOf, EventSlot } from '../misc/EventSource'; import { AllPropertiesInputs } from '../style/styleProperties'; import { TermButton, TermText } from '..'; type HasChildren = { children?: React.ReactNode; }; type AllReactEventsFor = { [K in keyof T as T[K] extends EventSlot ? K : never]?: (e: EventOf) => void; }; type PropSetFn = `set${Capitalize}`; type PropResetFn = `reset${Capitalize}`; type CheckIsProp = T extends { [_ in PropSetFn]: Function; } & { [_ in PropResetFn]: Function; } ? any : never; type AllReactPropsFor = { key?: string; ref?: React.Ref; } & Partial & { [K in Extract as K extends CheckIsProp ? K : never]?: T[K]; }; declare global { namespace JSX { interface IntrinsicElements { 'term:button': AllReactPropsFor & AllReactEventsFor & HasChildren; 'term:canvas': AllReactPropsFor & AllReactEventsFor; 'term:div': AllReactPropsFor & AllReactEventsFor & HasChildren; 'term:editor': AllReactPropsFor & AllReactEventsFor; 'term:form': AllReactPropsFor & AllReactEventsFor & HasChildren; 'term:input': AllReactPropsFor & AllReactEventsFor; 'term:text': AllReactPropsFor & AllReactEventsFor & HasChildren; 'term:pty': AllReactPropsFor & AllReactEventsFor; } } } export declare const ElementMap: Map; export {};