import { NotificationsUnion, Pipe } from "@leancodepl/pipe";
/**
 * Creates React hooks for real-time data subscriptions using "@leancodepl/pipe".
 *
 * @param pipe - Pipe instance from "@leancodepl/pipe"
 * @returns Object containing `createTopic` method for creating typed hooks
 * @example
 * ```typescript
 * const pipe = createPipe({ url: 'wss://api.example.com/pipe' });
 * const pipeClient = mkPipeClient({ pipe });
 *
 * const useChatTopic = pipeClient.createTopic('chat');
 * ```
 */
export declare function mkPipeClient({ pipe }: {
    pipe: Pipe;
}): {
    createTopic<TTopic, TNotifications extends Record<string, unknown>>(topicType: string): {
        (topic: TTopic, { onData }: UseSubscriptionOptions<TNotifications>): {
            data: NotificationsUnion<TNotifications> | undefined;
        };
        topic(topic: TTopic): import("rxjs").Observable<NotificationsUnion<TNotifications>>;
    };
};
export type UseSubscriptionOptions<TNotifications extends Record<string, unknown>> = {
    onData?: (data: NotificationsUnion<TNotifications>) => void;
};
