import * as React from 'react';
import type { ChunkComponentProps, ClientChunkConfig } from "./types.mjs";
/** Props for {@link CoordinatedLazyClient}. */
export interface CoordinatedLazyClientProps<T extends {}, P, O> {
  /**
   * The chunk config with the server-only loader functions
   * (`source`/`Loader`/`InitialLoader`) already stripped, so no function is ever
   * serialized into this Client Component. Client loading comes from a
   * {@link ChunkProvider} source in context (via {@link useChunk}).
   */
  config: ClientChunkConfig<T, P, O>;
  props: ChunkComponentProps<T, P, O>;
}
/**
 * The client-loading half of {@link createCoordinatedLazy}: loads the piece's
 * data on the client via {@link useChunk}, shows `ChunkLoading` until it is
 * ready, then swaps to `ChunkContent` through {@link CoordinatedLazy}. The
 * isomorphic router renders this only for the client-driven render modes, so the
 * content/loading components here are always client components.
 */
export declare function CoordinatedLazyClient<T extends {}, P, O>({
  config,
  props
}: CoordinatedLazyClientProps<T, P, O>): React.ReactElement;