import { type ReactNode, type ReactElement, type ComponentType } from 'react'; import { type AsyncModuleLoad } from '@quilted/async'; import type { NoOptions, RenderTiming, HydrationTiming, AsyncComponentType } from './types.ts'; export interface Options = Record, PreloadOptions extends Record = NoOptions> { name?: string; render?: RenderTiming; hydrate?: boolean | HydrationTiming; preload?: boolean; suspense?: boolean; renderError?(props: Props, error: Error): ReactNode; renderLoading?(props: Props): ReactNode; /** * Custom logic to use for the usePreload hook of the new, async * component. Because this logic will be used as part of a generated * custom hook, it must follow the rules of hooks. */ usePreload?(props: PreloadOptions): void; } export declare function createAsyncComponent = Record, PreloadOptions extends Record = NoOptions>(load: AsyncModuleLoad | (() => ReactElement) | { default: ComponentType; }>, { name, render, hydrate: explicitHydrate, preload, suspense, renderLoading, renderError, usePreload: useCustomPreload, }?: Options): AsyncComponentType, Props, PreloadOptions>; //# sourceMappingURL=component.d.ts.map