/// import { ISpruceContext } from '../interfaces/ctx'; import { GraphQLResolveInfo, GraphQLObjectType } from 'graphql'; import { IResolverLikeFunction } from 'graphql-sequelize'; import SpruceCoreModel from '../lib/SpruceModel'; import { FindOptions } from 'sequelize/types'; import { IGQLResolver } from '../interfaces/gql'; declare type SpruceCoreModelType = typeof SpruceCoreModel; export interface IBuildSequelizeResolver { (options: { modelName: string; associationName?: string; many?: boolean; options?: Record; before?: (findOptions: FindOptions, args: Record, context: IContext & { scopes: Record; }, info: GraphQLResolveInfo) => FindOptions | Promise; after?: (result: Record, args: Record, context: IContext & { scopes: Record; }, info: GraphQLResolveInfo) => Record | null; }): IGQLResolver; } export interface ISpruceGQLHelpers { buildSequelizeResolver: IBuildSequelizeResolver; cleanModelByScope(options: { model: SpruceCoreModel; context: ISpruceContext; info: GraphQLResolveInfo; }): Record | null; attributes(model: SpruceCoreModelType, options?: Record): any; enhancedResolver( /** The model. For example ctx.db.models.User */ model: SpruceCoreModelType, options?: Record, scope?: string): IResolverLikeFunction; buildConnection(options: { /** Name your connection. This must be unique */ name?: string; /** The model you're connecting. For example ctx.db.models.User */ model: SpruceCoreModelType; associationName: string; type: GraphQLObjectType; connectionOptions: { before?: (findOptions: FindOptions, args: Record, context: any) => Promise; }; }): any; } declare const _default: (ctx: ISpruceContext, import("..").ISpruceAuthGroup>, import("..").ISpruceAuthOrganization, import("..").ISpruceAuthLocation>, import("..").ISpruceServices, import("..").ISpruceUtilities, import("../interfaces/gql").ISpruceGQLTypes>) => { enhancedResolver: (model: typeof SpruceCoreModel, options?: Record | undefined, scope?: string | undefined) => IResolverLikeFunction; attributes: (model: any, options: Record) => any; attributeFields: (model: import("sequelize/types").Model, options?: Partial> | undefined) => any; defaultArgs: (model: import("sequelize/types").Model) => any; buildConnection: (options: Record) => any; buildSequelizeResolver: IBuildSequelizeResolver, import("..").ISpruceAuthGroup>, import("..").ISpruceAuthOrganization, import("..").ISpruceAuthLocation>, import("..").ISpruceServices, import("..").ISpruceUtilities, import("../interfaces/gql").ISpruceGQLTypes>>; cleanModelByScope: (options: { model: Record | SpruceCoreModel; modelName?: string | undefined; context: ISpruceContext, import("..").ISpruceAuthGroup>, import("..").ISpruceAuthOrganization, import("..").ISpruceAuthLocation>, import("..").ISpruceServices, import("..").ISpruceUtilities, import("../interfaces/gql").ISpruceGQLTypes>; info: GraphQLResolveInfo; }) => Record | null; }; export default _default;