import { InjectionToken, InjectOptions, Provider } from '@angular/core'; import { Ref } from '../ref'; import type { AnyCtor, AnyFunction } from '../types'; export declare function createNgtProvider(base: AnyCtor, ...providers: AnyFunction[]): (sub: AnyCtor) => any[]; export declare function createInjection : TTokenValue>(description: string, { defaultValueOrFactory, provideValueFactory, }?: { defaultValueOrFactory?: TTokenValue | (() => TTokenValue); provideValueFactory?: (value: TProvideValue) => TTokenValue; }): [ injectFn: (options?: InjectOptions) => TTokenValue, provideFn: (value: TProvideValue) => Provider, token: InjectionToken ]; export declare function createRefInjection = AnyCtor>(description: string, hostOrProviderFactory?: AnyFunction | true, ...providersFactory: AnyFunction[]): [ injectFn: (options?: InjectOptions) => AnyFunction>, providedFn: (sub: TProvideCtor, factory?: (instance: InstanceType) => Ref) => Provider, token: InjectionToken>> ];