export interface Provider { provide: new (...args: any[]) => T useValue: Partial } export const defineProvider = (provider: Provider) => { return provider } export function defineProviders(providers: [Provider]): [Provider] export function defineProviders( providers: [Provider, Provider], ): [Provider, Provider] export function defineProviders( providers: [Provider, Provider, Provider], ): [Provider, Provider, Provider] export function defineProviders(providers: Provider[]) { return providers }