import { ComponentType, ReactNode } from 'react';
import { type AwaitableSynapse } from '../../utils';
interface ReactAwaitSynapseOptions {
    loadingComponent?: ReactNode;
    errorComponent?: (error: Error) => ReactNode;
}
/**
 * React-обертка для фреймворк-независимой утилиты ожидания Synapse.
 * Добавляет React-специфичные методы поверх createSynapseAwaiter. Принимает
 * `SynapseModule`-handle (PromiseLike), Promise готового synapse или сам synapse.
 */
export declare function awaitSynapse<TStore extends AwaitableSynapse>(synapseStorePromise: PromiseLike<TStore> | TStore, options?: ReactAwaitSynapseOptions): {
    withSynapseReady: <ComponentProps>(Component: ComponentType<ComponentProps>) => {
        (props: ComponentProps): import("react/jsx-runtime").JSX.Element;
        displayName: string;
    };
    useSynapseReady: () => {
        isReady: boolean;
        isError: boolean;
        isPending: boolean;
        store: TStore | undefined;
        error: Error | null;
    };
    waitForReady: () => Promise<TStore>;
    isReady: () => boolean;
    getStoreIfReady: () => TStore | undefined;
    onReady: (cb: Parameters<(callback: (store: TStore) => void) => VoidFunction>[0]) => VoidFunction;
    onError: (cb: Parameters<(callback: (error: Error) => void) => VoidFunction>[0]) => VoidFunction;
    getStatus: () => "error" | "ready" | "pending";
    getError: () => Error | null;
    destroy: () => void;
};
export {};
