import type { ComponentInstanceApi } from '@/hooks/useComponentInstance/useComponentInstance';
import type { DryRunCandidateAncestor } from '@/hooks/useDryRun/factories/DryRunCandidate';
import { type DryRunApi } from '@/hooks/useDryRun/useDryRun';
import type { TreeMapStore } from '@/hooks/useTreeMap/useTreeMap';
import type { DeclarationId, ProviderEntry, ScopeId, RegisterId, RuntimeContext } from '@/types';
import type { PropService } from 'utils/effect';
export type ProviderTreeApi = {
    register: (id: DeclarationId, providers: ProviderEntry<any, any>[]) => void;
    getRoot: (dryRunInstance: DryRunApi) => DryRunCandidateAncestor;
    getRootAncestors: (dryRunInstance: DryRunApi) => Map<RegisterId, DryRunCandidateAncestor>;
    resolveProviderData: (id: RegisterId, dryRunInstance: DryRunApi, initialModules?: Set<RuntimeContext<any, never, PropService>>) => readonly [
        Map<RegisterId, DryRunCandidateAncestor>,
        DryRunCandidateAncestor
    ];
};
export declare const useProviderTree: (scopeId: ScopeId, treeMap: TreeMapStore, componentInstanceApi: ComponentInstanceApi) => ProviderTreeApi;
export declare const getProviderTree: (scopeId: ScopeId, treeMap: TreeMapStore, componentTree: ComponentInstanceApi) => ProviderTreeApi;
