import { GraphQLRequestContext, type GraphQLRequestContextWillSendResponse } from '@apollo/server'; import { Container, interfaces } from 'inversify'; import type { Express } from 'express'; import type { ApolloServerPlugin } from '@apollo/server'; import { IAddPermissions, IAddPolicies, IDataSourceConfig, IDirectiveOptions, IGraphqlShieldRules, IMongoMigration, IOverwritePreference, IPreferences, IResolverOptions, IWebsocketConfig } from '../interfaces'; import { IRoleUpdate } from '../interfaces/roles'; export declare const featureCatalog: any; /** * Phase at which a `createContextFunc` factory should run inside the Express * pipeline configured by `@common-stack/server-stack`. * * - `pre-beforeware` (default): runs before the auth beforeware chain. * - `pre-middleware`: runs after beforewares (e.g. once `req.user` is set). * - `post-middleware`: runs after consumer middlewares. */ export type ContextPhase = 'pre-beforeware' | 'pre-middleware' | 'post-middleware'; /** * Tag a context factory with the phase at which it should execute. Untagged * factories default to `pre-beforeware`. * * @example * export const userContext = withPhase(async (req, res) => { ... }, 'pre-middleware'); */ export declare function withPhase(fn: F, phase: ContextPhase): F; export interface IFederationServiceOptions { port: number; config?: any; } export type FederationServiceDeclaration = (options: IFederationServiceOptions) => Promise; export type KeyGenerator = (context: GraphQLRequestContext, cacheKey?: string) => string; export type InvalidationKeyGenerator = (requestContext: GraphQLRequestContext, responseContext: GraphQLRequestContextWillSendResponse, cacheKey?: string) => string; /** * Feature Params that can be passed to Feature Module. */ export type FeatureParams = { schema?: string | string[]; createRemoteSchemas?: Function | Function[]; createDirectivesFunc?: Function | Function[]; createResolversFunc?: Function | Function[]; createContextFunc?: Function | Function[]; postBindContainerFunc?: Function[]; postBindMicroServiceContainerFunc?: Function[]; /** * @deprecated Use postBindMicroServiceContainerFunc instead */ postBindHemraContainerFunc?: Function[]; createServiceFunc?: Function | Function[]; createDataSourceFunc?: Function | Function[]; createContainerFunc?: Function | Function[]; createMicroServiceContainerFunc?: Function | Function[]; /** * @deprecated Use createMicroServiceContainerFunc instead */ createHemeraContainerFunc?: Function | Function[]; createAsyncContainerFunc?: Function | Function[]; createAsyncMicroServiceContainerFunc?: Function | Function[]; /** * @deprecated Use createAsyncMicroServiceContainerFunc instead */ createAsyncHemeraContainerFunc?: Function | Function[]; preCreateServiceFunc?: Function | Function[]; postCreateServiceFunc?: Function | Function[]; preStartFunc?: Function | Function[]; postStartFunc?: Function | Function[]; microservicePreStartFunc?: Function | Function[]; microservicePostStartFunc?: Function | Function[]; addBrokerServiceClass?: Function | Function[]; /** * @deprecated Use addBrokerServiceClass instead */ addBrokerMainServiceClass?: Function | Function[]; /** * @deprecated Use addBrokerServiceClass instead */ addMainBrokerServiceClass?: Function | Function[]; addMicroserviceBrokerServiceClass?: Function | Function[]; /** * @deprecated Use addMicroserviceBrokerServiceClass instead */ addBrokerClientServiceClass?: Function | Function[]; createWebsocketConfig?: IWebsocketConfig | IWebsocketConfig[]; updateContainerFunc?: any | any[]; createPreference?: IPreferences | IPreferences[]; overwritePreference?: IOverwritePreference | IOverwritePreference[]; /** * Permissions Preferences * @deprecated */ addPermissions?: IAddPermissions; /** * Policies Preferences * @deprecated */ addPolicies?: IAddPolicies; /** * Roles to provide permissions to access resources. * @deprecated */ rolesUpdate?: IRoleUpdate; federation?: FederationServiceDeclaration | FederationServiceDeclaration[]; dataIdFromObject?: Function | Function[]; disposeFunc?: any | any[]; beforeware?: any | any[]; middleware?: any | any[]; graphqlMiddleware?: any | any[]; catalogInfo?: any | any[]; /** * Graphql shields rules, a graphql middleware for authorization * based on defined permissions */ rules?: IGraphqlShieldRules; registerExpressMiddlewareFunc?: RegisterExpressMiddlewareFunc | RegisterExpressMiddlewareFunc[]; apolloCacheKeyGeneratorFunc?: KeyGenerator | KeyGenerator[]; apolloInvalidateCacheKeyGeneratorFunc?: InvalidationKeyGenerator | InvalidationKeyGenerator[]; graphqlPlugins?: ApolloServerPlugin[]; /** * Inngest functions that can be registered from different modules */ inngestFunctions?: Function | Function[]; /** * Dynamic Inngest function factories that are evaluated at runtime. * Use this for frequently changing or user-defined functions. */ dynamicInngestFunctions?: Function | Function[]; /** * Service schemas for proxy service generation. * Used by additionalProxyServices in config.json to auto-generate proxy classes. * Should be a Record mapping schema names to their Zod schemas (e.g., AllServiceSchemas). */ serviceSchemas?: Record; }; type RegisterExpressMiddlewareFunc = (app: Express, container: Container) => void; declare class Feature { schema: string[]; createRemoteSchemas?: Function | Function[]; createDirectivesFunc: Function[]; createResolversFunc: Function[]; createContextFunc: Function[]; createServiceFunc: Function[]; createContainerFunc: Function[]; postBindContainerFunc: Function[]; postBindMicroServiceContainerFunc: Function[]; /** * @deprecated Use postBindMicroServiceContainerFunc instead */ postBindHemraContainerFunc: Function[]; federation: FederationServiceDeclaration[]; createMicroServiceContainerFunc: Function[]; /** * @deprecated Use createMicroServiceContainerFunc instead */ createHemeraContainerFunc: Function[]; createAsyncContainerFunc: Function[]; createAsyncMicroServiceContainerFunc: Function[]; /** * @deprecated Use createAsyncMicroServiceContainerFunc instead */ createAsyncHemeraContainerFunc: Function[]; createDataSourceFunc: Function[]; preCreateServiceFunc: Function[]; postCreateServiceFunc: Function[]; preStartFunc: Function[]; postStartFunc: Function[]; microservicePreStartFunc: Function[]; microservicePostStartFunc: Function[]; addBrokerServiceClass: Function[]; /** * @deprecated Use addBrokerServiceClass instead */ addBrokerMainServiceClass: Function[]; /** * @deprecated Use addBrokerServiceClass instead */ addMainBrokerServiceClass: Function[]; addMicroserviceBrokerServiceClass: Function[]; /** * @deprecated Use addMicroserviceBrokerServiceClass instead */ addBrokerClientServiceClass: Function[]; disposeFunc: any[]; updateContainerFunc: any[]; beforeware: Function[]; middleware: Function[]; graphqlMiddleware: Function[]; registerExpressMiddlewareFunc: RegisterExpressMiddlewareFunc[]; apolloCacheKeyGeneratorFunc: KeyGenerator[]; apolloInvalidateCacheKeyGeneratorFunc: InvalidationKeyGenerator[]; createWebsocketConfig: IWebsocketConfig[]; createPreference: IPreferences[]; addPermissions?: IAddPermissions; addPolicies: IAddPolicies; rolesUpdate: IRoleUpdate; overwritePreference: IOverwritePreference[]; overwriteRole: IOverwritePreference[]; migrations?: Array<{ [id: string]: IMongoMigration; }>; graphqlPlugins?: ApolloServerPlugin[]; inngestFunctions: Function[]; dynamicInngestFunctions: Function[]; /** * Service schemas for proxy service generation. * Used by additionalProxyServices in config.json to auto-generate proxy classes. */ serviceSchemas: Record; private _rules; private _contextFactoriesByPhase?; private services; private container; private hemeraContainer; private dataSources; /** * Helper method to try to get a module name from neighboring valid modules for debugging * @param args Array of feature params * @param index Index of the problematic module * @returns Module name hint or empty string */ private tryGetModuleName; constructor(feature?: FeatureParams, ...features: Feature[]); get rules(): IGraphqlShieldRules; get schemas(): string[]; /** * Creates context * @param req * @param connectionParams * @param webSocket * @deprecated */ createContext(req: any, connectionParams: any, webSocket?: any): Promise; /** * If you need to attach service to Graphql Context, you can use this function. * It should be called twice to get the context. */ createServiceContext(options: any, updateOptions?: any): (req: any, connectionParams: any, webSocket?: any) => Promise; /** * Run only the createContextFunc factories tagged with the given phase. * Untagged factories default to 'pre-beforeware'. Returns merged context * plus a `matched` flag indicating whether any factory was eligible. */ runContextFactoriesForPhase(req: any, res: any, phase: ContextPhase): Promise<{ context: any; matched: boolean; }>; /** * Lazily groups `createContextFunc` by phase and caches the result so the * per-request middleware avoids re-filtering on every invocation. */ private getContextFactoriesForPhase; /** * Its wrapper to container to get services * @param container */ createService(options: any, updateOptions?: any): Promise; /** * Pre start action will be executed there. * */ preStart(options: S): Promise; /** * Post start actions will be executed here. */ postStart(options: S): Promise; /** * Pre start action will be executed there. * */ microservicePreStart(options: S): Promise; /** * Post start actions will be executed here. */ microservicePostStart(options: S): Promise; createDataSource(options?: IDataSourceConfig): any; createResolvers(options?: IResolverOptions): any; createDirectives(options?: IDirectiveOptions): any; createContainers(options: any, containerOptions?: interfaces.ContainerOptions): Promise; /** * Use createMicroserviceContainers instead * @param options * @deprecated Use createMicroserviceContainers instead */ createHemeraContainers(options: any): Promise; /** * Creates container for the microservice * * @param options */ createMicroserviceContainers(options: any): Promise; updateContainers(options: any, updateOptions?: any): void; loadMainMoleculerService({ container, broker, settings, }: { container: Container; broker: any; settings: unknown; }): void; loadClientMoleculerService({ container, broker, settings, }: { container: Container; broker: any; settings: unknown; }): void; createDefaultPreferences(): import("../interfaces").IPreferencesData[]; get beforewares(): any[]; get middlewares(): any[]; get graphqlMiddlewares(): any[]; getPreferences(): IPreferences[]; getPreferencesObj(): { [n: number]: IPreferences; length: number; toString(): string; toLocaleString(): string; toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; pop(): IPreferences; push(...items: IPreferences[]): number; concat(...items: ConcatArray>[]): IPreferences[]; concat(...items: (IPreferences | ConcatArray>)[]): IPreferences[]; join(separator?: string): string; reverse(): IPreferences[]; shift(): IPreferences; slice(start?: number, end?: number): IPreferences[]; sort(compareFn?: (a: IPreferences, b: IPreferences) => number): IPreferences[]; splice(start: number, deleteCount?: number): IPreferences[]; splice(start: number, deleteCount: number, ...items: IPreferences[]): IPreferences[]; unshift(...items: IPreferences[]): number; indexOf(searchElement: IPreferences, fromIndex?: number): number; lastIndexOf(searchElement: IPreferences, fromIndex?: number): number; every>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): this is S_1[]; every(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; some(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => void, thisArg?: any): void; map(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => U, thisArg?: any): U[]; filter>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): S_1[]; filter(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): IPreferences[]; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduce(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; find>(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => value is S_1, thisArg?: any): S_1; find(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): IPreferences; findIndex(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): number; fill(value: IPreferences, start?: number, end?: number): IPreferences[]; copyWithin(target: number, start: number, end?: number): IPreferences[]; entries(): ArrayIterator<[number, IPreferences]>; keys(): ArrayIterator; values(): ArrayIterator>; includes(searchElement: IPreferences, fromIndex?: number): boolean; flatMap(callback: (this: This, value: IPreferences, index: number, array: IPreferences[]) => U | readonly U[], thisArg?: This): U[]; flat(this: A, depth?: D): FlatArray[]; at(index: number): IPreferences; [Symbol.iterator](): ArrayIterator>; [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; at?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; }; getPermissionPreferences(): IPreferences[]; getPermissionPreferencesObj(): { [n: number]: IPreferences; length: number; toString(): string; toLocaleString(): string; toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; pop(): IPreferences; push(...items: IPreferences[]): number; concat(...items: ConcatArray>[]): IPreferences[]; concat(...items: (IPreferences | ConcatArray>)[]): IPreferences[]; join(separator?: string): string; reverse(): IPreferences[]; shift(): IPreferences; slice(start?: number, end?: number): IPreferences[]; sort(compareFn?: (a: IPreferences, b: IPreferences) => number): IPreferences[]; splice(start: number, deleteCount?: number): IPreferences[]; splice(start: number, deleteCount: number, ...items: IPreferences[]): IPreferences[]; unshift(...items: IPreferences[]): number; indexOf(searchElement: IPreferences, fromIndex?: number): number; lastIndexOf(searchElement: IPreferences, fromIndex?: number): number; every>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): this is S_1[]; every(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; some(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => void, thisArg?: any): void; map(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => U, thisArg?: any): U[]; filter>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): S_1[]; filter(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): IPreferences[]; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduce(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; find>(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => value is S_1, thisArg?: any): S_1; find(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): IPreferences; findIndex(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): number; fill(value: IPreferences, start?: number, end?: number): IPreferences[]; copyWithin(target: number, start: number, end?: number): IPreferences[]; entries(): ArrayIterator<[number, IPreferences]>; keys(): ArrayIterator; values(): ArrayIterator>; includes(searchElement: IPreferences, fromIndex?: number): boolean; flatMap(callback: (this: This, value: IPreferences, index: number, array: IPreferences[]) => U | readonly U[], thisArg?: This): U[]; flat(this: A, depth?: D): FlatArray[]; at(index: number): IPreferences; [Symbol.iterator](): ArrayIterator>; [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; at?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; }; getPolicyPreferences(): IPreferences[]; getPolicyPreferencesObj(): { [n: number]: IPreferences; length: number; toString(): string; toLocaleString(): string; toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; pop(): IPreferences; push(...items: IPreferences[]): number; concat(...items: ConcatArray>[]): IPreferences[]; concat(...items: (IPreferences | ConcatArray>)[]): IPreferences[]; join(separator?: string): string; reverse(): IPreferences[]; shift(): IPreferences; slice(start?: number, end?: number): IPreferences[]; sort(compareFn?: (a: IPreferences, b: IPreferences) => number): IPreferences[]; splice(start: number, deleteCount?: number): IPreferences[]; splice(start: number, deleteCount: number, ...items: IPreferences[]): IPreferences[]; unshift(...items: IPreferences[]): number; indexOf(searchElement: IPreferences, fromIndex?: number): number; lastIndexOf(searchElement: IPreferences, fromIndex?: number): number; every>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): this is S_1[]; every(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; some(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => void, thisArg?: any): void; map(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => U, thisArg?: any): U[]; filter>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): S_1[]; filter(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): IPreferences[]; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduce(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; find>(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => value is S_1, thisArg?: any): S_1; find(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): IPreferences; findIndex(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): number; fill(value: IPreferences, start?: number, end?: number): IPreferences[]; copyWithin(target: number, start: number, end?: number): IPreferences[]; entries(): ArrayIterator<[number, IPreferences]>; keys(): ArrayIterator; values(): ArrayIterator>; includes(searchElement: IPreferences, fromIndex?: number): boolean; flatMap(callback: (this: This, value: IPreferences, index: number, array: IPreferences[]) => U | readonly U[], thisArg?: This): U[]; flat(this: A, depth?: D): FlatArray[]; at(index: number): IPreferences; [Symbol.iterator](): ArrayIterator>; [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; at?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; }; getRoles(): {}; getRolesObj(): { [n: number]: IPreferences; length: number; toString(): string; toLocaleString(): string; toLocaleString(locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; pop(): IPreferences; push(...items: IPreferences[]): number; concat(...items: ConcatArray>[]): IPreferences[]; concat(...items: (IPreferences | ConcatArray>)[]): IPreferences[]; join(separator?: string): string; reverse(): IPreferences[]; shift(): IPreferences; slice(start?: number, end?: number): IPreferences[]; sort(compareFn?: (a: IPreferences, b: IPreferences) => number): IPreferences[]; splice(start: number, deleteCount?: number): IPreferences[]; splice(start: number, deleteCount: number, ...items: IPreferences[]): IPreferences[]; unshift(...items: IPreferences[]): number; indexOf(searchElement: IPreferences, fromIndex?: number): number; lastIndexOf(searchElement: IPreferences, fromIndex?: number): number; every>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): this is S_1[]; every(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; some(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => void, thisArg?: any): void; map(callbackfn: (value: IPreferences, index: number, array: IPreferences[]) => U, thisArg?: any): U[]; filter>(predicate: (value: IPreferences, index: number, array: IPreferences[]) => value is S_1, thisArg?: any): S_1[]; filter(predicate: (value: IPreferences, index: number, array: IPreferences[]) => unknown, thisArg?: any): IPreferences[]; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduce(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduce(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: IPreferences, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => IPreferences, initialValue: IPreferences): IPreferences; reduceRight(callbackfn: (previousValue: U, currentValue: IPreferences, currentIndex: number, array: IPreferences[]) => U, initialValue: U): U; find>(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => value is S_1, thisArg?: any): S_1; find(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): IPreferences; findIndex(predicate: (value: IPreferences, index: number, obj: IPreferences[]) => unknown, thisArg?: any): number; fill(value: IPreferences, start?: number, end?: number): IPreferences[]; copyWithin(target: number, start: number, end?: number): IPreferences[]; entries(): ArrayIterator<[number, IPreferences]>; keys(): ArrayIterator; values(): ArrayIterator>; includes(searchElement: IPreferences, fromIndex?: number): boolean; flatMap(callback: (this: This, value: IPreferences, index: number, array: IPreferences[]) => U | readonly U[], thisArg?: This): U[]; flat(this: A, depth?: D): FlatArray[]; at(index: number): IPreferences; [Symbol.iterator](): ArrayIterator>; [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; at?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; }; getWebsocketConfig(): IWebsocketConfig; private convertArrayToObject; registerExpressMiddleware(app: Express, container: Container): Promise; apolloCacheKeyGenerator(context: GraphQLRequestContext, defaultCacheKey: string): string; apolloInvalidateCacheKeyGenerator(requestContext: GraphQLRequestContext, responseContext: GraphQLRequestContextWillSendResponse, defaultCacheKey: string): string; /** * Load and register Inngest functions from all modules * Similar to loadClientMoleculerService pattern * * @returns Array of all Inngest function instances ready for registration */ loadInngestFunctions({ container, inngest, settings, }: { container: Container; inngest: any; settings?: unknown; }): Promise; /** * Load and register dynamic Inngest functions from all modules. * Intended for function factories that can change at runtime. */ loadDynamicInngestFunctions({ container, inngest, settings, }: { container: Container; inngest: any; settings?: unknown; }): Promise; private loadInngestFunctionsFromFactories; /** * Get a flat list of all Inngest functions for registration * This is the main method used by the setup to register with Inngest * * @returns Flattened array of Inngest function instances */ getInngestFunctionsForRegistration({ container, inngest, settings, }: { container: Container; inngest: any; settings?: unknown; }): Promise; } export { Feature };