import { Context } from 'react'; import { ObservableInput } from 'rxjs'; import { ReactProvider } from './provider'; export interface InjectableReactProviderFactory { (fct: (req?: never, opt?: never) => T, ctx: Context): ReactProvider; (fct: (req: [R1], opt?: never) => T, ctx: Context, req: [Context]): ReactProvider; (fct: (req: [R1, R2], opt?: never) => T, ctx: Context, req: [Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3], opt?: never) => T, ctx: Context, req: [Context, Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4], opt?: never) => T, ctx: Context, req: [Context, Context, Context, Context]): ReactProvider; (fct: (req: never, opt: [O1?]) => T, ctx: Context, req: never, opt: [Context]): ReactProvider; (fct: (req: never, opt: [O1?, O2?]) => T, ctx: Context, req: never, opt: [Context, Context]): ReactProvider; (fct: (req: never, opt: [O1?, O2?, O3?]) => T, ctx: Context, req: never, opt: [Context, Context, Context]): ReactProvider; (fct: (req: [], opt: [O1?]) => T, ctx: Context, req: [], opt: [Context]): ReactProvider; (fct: (req: [], opt: [O1?, O2?]) => T, ctx: Context, req: [], opt: [Context, Context]): ReactProvider; (fct: (req: [], opt: [O1?, O2?, O3?]) => T, ctx: Context, req: [], opt: [Context, Context, Context]): ReactProvider; (fct: (req: [R1], opt: [O1?]) => T, ctx: Context, req: [Context], opt: [Context]): ReactProvider; (fct: (req: [R1], opt: [O1?, O2?]) => T, ctx: Context, req: [Context], opt: [Context, Context]): ReactProvider; (fct: (req: [R1, R2], opt: [O1?]) => T, ctx: Context, req: [Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2], opt: [O1?, O2?]) => T, ctx: Context, req: [Context, Context], opt: [Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3], opt: [O1?]) => T, ctx: Context, req: [Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3], opt: [O1?, O2?]) => T, ctx: Context, req: [Context, Context, Context], opt: [Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4], opt: [O1?]) => T, ctx: Context, req: [Context, Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4, R5], opt: [O1?]) => T, ctx: Context, req: [Context, Context, Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4, R5, R6], opt: [O1?]) => T, ctx: Context, req: [Context, Context, Context, Context, Context, Context], opt: [Context]): ReactProvider; } export interface DynamicReactProviderFactory { (fct: (req?: never, opt?: never) => ObservableInput, ctx: Context): ReactProvider; (fct: (req: [R1], opt?: never) => ObservableInput, ctx: Context, req: [Context]): ReactProvider; (fct: (req: [R1, R2], opt?: never) => ObservableInput, ctx: Context, req: [Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3], opt?: never) => ObservableInput, ctx: Context, req: [Context, Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4], opt?: never) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context]): ReactProvider; (fct: (req: never, opt: [O1?]) => ObservableInput, ctx: Context, req: never, opt: [Context]): ReactProvider; (fct: (req: never, opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: never, opt: [Context, Context]): ReactProvider; (fct: (req: never, opt: [O1?, O2?, O3?]) => ObservableInput, ctx: Context, req: never, opt: [Context, Context, Context]): ReactProvider; (fct: (req: [], opt: [O1?]) => ObservableInput, ctx: Context, req: [], opt: [Context]): ReactProvider; (fct: (req: [], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [], opt: [Context, Context]): ReactProvider; (fct: (req: [], opt: [O1?, O2?, O3?]) => ObservableInput, ctx: Context, req: [], opt: [Context, Context, Context]): ReactProvider; (fct: (req: [R1], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context], opt: [Context]): ReactProvider; (fct: (req: [R1], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [Context], opt: [Context, Context]): ReactProvider; (fct: (req: [R1, R2], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [Context, Context], opt: [Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3], opt: [O1?, O2?]) => ObservableInput, ctx: Context, req: [Context, Context, Context], opt: [Context, Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4, R5], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4, R5, R6], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context, Context, Context], opt: [Context]): ReactProvider; (fct: (req: [R1, R2, R3, R4, R5, R6, R7], opt: [O1?]) => ObservableInput, ctx: Context, req: [Context, Context, Context, Context, Context, Context, Context], opt: [Context]): ReactProvider; } /** * Creates a `ReactProvider` that resolves its mandatory * and optional elements and delegates the creation of the provided * value to a callback function with these dependencies. * * @param fct - the generator function for the value * @param ctx - the context to provider * @param req - array of required dependencies * @param opt - array of optional dependencies * * @returns a module that automatically resolves the dependencies before calling the function */ export declare const createInjectableReactProvider: InjectableReactProviderFactory; /** * Creates a `ReactProvider` that resolves its mandatory * and optional elements and delegates the creation of the provided * value to a callback function with these dependencies. The callback * returns an observable and the observable sequence will be provided. * * @param fct - the generator function for the value * @param ctx - the context to provider * @param req - array of required dependencies * @param opt - array of optional dependencies * * @returns a module that automatically resolves the dependencies before calling the function */ export declare const createDynamicReactProvider: DynamicReactProviderFactory;