import * as react from 'react';
import { ComponentType, ReactNode, FC, DependencyList, EffectCallback } from 'react';
declare const withSuspense:
(Component: ComponentType
, fallback?: ReactNode) => FC
;
type Merge = Omit & Prepared;
declare const withPrepare: (usePrepare: (props: Props) => Prepared | null | undefined, Content: ComponentType>) => FC;
type TagToHTMLElement = {
div: HTMLDivElement;
span: HTMLSpanElement;
input: HTMLInputElement;
button: HTMLButtonElement;
a: HTMLAnchorElement;
p: HTMLParagraphElement;
img: HTMLImageElement;
ul: HTMLUListElement;
ol: HTMLOListElement;
li: HTMLLIElement;
table: HTMLTableElement;
tr: HTMLTableRowElement;
td: HTMLTableCellElement;
form: HTMLFormElement;
textarea: HTMLTextAreaElement;
select: HTMLSelectElement;
option: HTMLOptionElement;
script: HTMLScriptElement;
link: HTMLLinkElement;
style: HTMLStyleElement;
canvas: HTMLCanvasElement;
video: HTMLVideoElement;
audio: HTMLAudioElement;
iframe: HTMLIFrameElement;
body: HTMLBodyElement;
head: HTMLHeadElement;
html: HTMLHtmlElement;
};
declare function useHTMLElement(tag: T): react.RefObject | null>;
declare function useMount(effect: EffectCallback): void;
declare function useClean(cleanup: () => void, deps?: DependencyList): void;
export { useClean, useHTMLElement, useMount, withPrepare, withSuspense };