import { Context } from "react"; type ContravariantResource = (...args: A) => ResourceElement; type ExtractResourceReturnType = T extends ResourceElement ? R : T extends Resource ? R : never; type Resource = (...args: A) => ResourceElement; type ResourceElement = { readonly hook: (...args: A) => R; readonly args: Readonly; readonly key?: string | number; readonly deps?: readonly unknown[]; }; declare const createTapRoot: (render: () => R) => useTapRoot.Root & { unmount: () => void; }; declare const flushTapSync: (callback: () => T) => T; declare namespace entry_root_exports { export { ContravariantResource, Resource, ResourceElement, createTapRoot, flushTapSync, resource, useContextProvider, useResource, useResources, useTapHost, useTapRoot, withKey }; } declare function resource(hook: (...args: A) => R): Resource; declare const useContextProvider: (context: Context, value: T, fn: () => TResult) => TResult; declare function useResource>(element: E): ExtractResourceReturnType; declare function useResources>(elements: readonly E[]): ExtractResourceReturnType[]; declare namespace useTapHost { interface Result { value: R; effects: () => void; } } declare const useTapHost: (callback: () => R) => useTapHost.Result; declare namespace useTapRoot { type Unsubscribe = () => void; interface Root { getValue(): R; subscribe(listener: () => void): Unsubscribe; } } declare const useTapRoot: (render: () => R) => useTapRoot.Root; declare function withKey>(key: string | number, element: E, deps?: readonly unknown[]): E; export { entry_root_exports as entry_root };