import type { AsyncModule } from '@quilted/async'; import type { ComponentType, FunctionComponent } from 'react'; export type RenderTiming = 'server' | 'client'; export type HydrationTiming = 'immediate' | 'defer'; export type AssetLoadTiming = 'never' | 'preload' | 'load'; export type NonOptionalKeys = { [K in keyof T]-?: undefined extends T[K] ? never : K; }[keyof T]; export type IfAllOptionalKeys = NonOptionalKeys extends { length: 0; } ? If : Else; export type NoInfer = { [K in keyof T]: T[K]; } & T; export type NoOptions = Record; export interface Preloadable = NoOptions> { readonly usePreload: Options extends NoOptions ? () => void : (options: Options) => void; } export interface AsyncComponentType, PreloadOptions extends Record = NoOptions> extends Preloadable, FunctionComponent { load(): Promise; readonly module: AsyncModule; readonly Preload: ComponentType; } export type PreloadOptions = T extends Preloadable ? U : never; //# sourceMappingURL=types.d.ts.map