import { Constructor } from '../types'; interface UseProviderConfigs { allowUndef?: boolean; name?: string; } interface UseProviderConfigsAllowUndef extends UseProviderConfigs { allowUndef: true; } interface UseProviderConfigsDisAllowUndef extends UseProviderConfigs { allowUndef?: false; } declare function useProvider(ctor: StringConstructor, configs: UseProviderConfigsAllowUndef): string | undefined; declare function useProvider(ctor: StringConstructor, configs: UseProviderConfigsDisAllowUndef): string; declare function useProvider(ctor: StringConstructor, name?: string): string; declare function useProvider(ctor: BooleanConstructor, configs: UseProviderConfigsAllowUndef): boolean | undefined; declare function useProvider(ctor: BooleanConstructor, configs: UseProviderConfigsDisAllowUndef): boolean; declare function useProvider(ctor: BooleanConstructor, name?: string): boolean; declare function useProvider(ctor: NumberConstructor, configs: UseProviderConfigsAllowUndef): number | undefined; declare function useProvider(ctor: NumberConstructor, configs: UseProviderConfigsDisAllowUndef): number; declare function useProvider(ctor: NumberConstructor, name?: string): number; declare function useProvider(ctor: Constructor, configs: UseProviderConfigsAllowUndef): T | undefined; declare function useProvider(ctor: Constructor, configs: UseProviderConfigsDisAllowUndef): T; declare function useProvider(ctor: Constructor, name?: string): T; declare function useProvider(ctor: Constructor, configs?: string | UseProviderConfigs): T | undefined; export default useProvider; export type { UseProviderConfigsAllowUndef, UseProviderConfigsDisAllowUndef, UseProviderConfigs };