UNPKG

1.19 kBTypeScriptView Raw
1import {
2 Component as PreactComponent,
3 VNode as PreactVNode,
4 FunctionalComponent as PreactFunctionalComponent
5} from '../../src/internal';
6import { SuspenseProps } from './suspense';
7
8export { ComponentChildren } from '../..';
9
10export { PreactElement } from '../../src/internal';
11
12export interface Component<P = {}, S = {}> extends PreactComponent<P, S> {
13 isReactComponent?: object;
14 isPureReactComponent?: true;
15 _patchedLifecycles?: true;
16
17 _childDidSuspend?(
18 error: Promise<void>,
19 suspendingComponent: Component<any, any>,
20 oldVNode?: VNode
21 ): void;
22 _suspendedComponentWillUnmount?(): void;
23}
24
25export interface FunctionalComponent<P = {}>
26 extends PreactFunctionalComponent<P> {
27 shouldComponentUpdate?(nextProps: Readonly<P>): boolean;
28 _forwarded?: boolean;
29 _patchedLifecycles?: true;
30}
31
32export interface VNode<T = any> extends PreactVNode<T> {
33 $$typeof?: symbol | string;
34 preactCompatNormalized?: boolean;
35}
36
37export interface SuspenseState {
38 _suspended?: null | VNode<any>;
39}
40
41export interface SuspenseComponent
42 extends PreactComponent<SuspenseProps, SuspenseState> {
43 _pendingSuspensionCount: number;
44 _suspenders: Component[];
45 _detachOnNextRender: null | VNode<any>;
46}