import * as preact from 'preact';
// also modified
// node_modules/preact/src/index.d.ts
/*
export interface VNode
{
type: ComponentType
| string;
props: P & any;
export function cloneElement(
vnode: ComponentChild,
props?: any,
...children: ComponentChildren[]
): VNode;
*/
// node_modules/preact/compat/src/index.d.ts
/*
export function createPortal(
vnode: preact.ComponentChild,
container: Element | DocumentFragment
): preact.VNode;
*/
declare module 'react' {
// // https://github.com/preactjs/preact/issues/4114#issuecomment-1690930689
interface HTMLProps extends preact.JSX.HTMLAttributes {
icon?: string | undefined | preact.SignalLike | preact.ComponentChild;
role?: preact.JSX.AriaRole | undefined | preact.SignalLike;
};
type AriaRole = preact.JSX.AriaRole;
type JSXElementConstructor =
| ((props: P) => ReactElement | null)
| (new (props: P) => Component);
interface ButtonHTMLAttributes extends preact.JSX.HTMLAttributes {};
interface ImgHTMLAttributes extends preact.JSX.HTMLAttributes {};
interface InputHTMLAttributes extends preact.JSX.HTMLAttributes {};
interface OlHTMLAttributes extends HTMLAttributes {
reversed?: boolean | undefined;
start?: number | undefined;
type?: '1' | 'a' | 'A' | 'i' | 'I' | undefined;
};
interface LiHTMLAttributes extends HTMLAttributes {
value?: string | ReadonlyArray | number | undefined;
}
type ReactText = string | number;
type ComponentType = preact.ComponentType
;
type ElementType
=
{
[K in keyof preact.JSX.IntrinsicElements]: P extends preact.JSX.IntrinsicElements[K] ? K : never
}[keyof preact.JSX.IntrinsicElements] |
ComponentType
;
// interface VNode
extends preact.VNode
{
// props: P & {
// children: preact.ComponentChildren;
// className: string;
// };
// }
type LegacyRef = string | Ref;
// interface ReactElement extends preact.VNode
{};
interface ReactElement
= string | JSXElementConstructor> {
type: T;
props: P;
key: Key | null;
}
type MouseEvent = any;
type KeyboardEvent = any;
type DragEvent = any;
type FormEvent = any;
type TouchEvent = any;
type FocusEvent = any;
type SyntheticEvent = any;
type TransitionEvent = any;
type ClipboardEvent = any;
type TargetedEvent<
Target extends EventTarget = EventTarget,
TypedEvent extends Event = Event
> = preact.JSX.TargetedEvent & {
nativeEvent: any;
}
type MouseEventHandler = EventHandler>;
type TargetedTransitionEvent =
TargetedEvent & {
nativeEvent: any;
};
type TransitionEventHandler = EventHandler>;
type SetStateAction = S | ((prevState: S) => S);
type HTMLAttributeAnchorTarget =
| '_self'
| '_blank'
| '_parent'
| '_top'
| (string & {});
}