import { DataManager, ManagerResolvers } from './dataManagerService'; import { StorageState, GenericGraphQLStorageSource } from './dataStorageInternalService'; import { GraphQLRecordAssertion, GraphQLArgumentAssertion } from '../graphql/graphqlService'; import { NonNullableProps, RequiredDifference } from '../../utilities/types'; export declare class DataStorage> { private _internalManager; constructor(storeHydrate: StorageState); /** * Beware: extreme typesafety below, careful changing this. * * The type inputs for this method are modelled to match the types derived from GraphQL introspection. * The first 3 describe types that are used by the manager to assert transformations for mutations, * for example, the create and update types require resolvers that can transform to the Query type. * The last input should be the full schema for the GraphQL object that the other types are related to. * It technically is never interacted with however it asserts that the former types are for the same schema * by extending a transformation of itself that requires anything that it does not possess that the * other 3 types do. If it is truly the full schema of the same GraphQL object then * it will have all the fields of the former types, however if any of the former are for a different schema * then it will most likely be invalid for missing fields (unless the schemas look the exact same). * * The extensions for first 3 types are used to assert that even after transformation, the input type is still valid * to extend itself. The assertion for example will transform functions as props into 'never', so if the given * input type has functions as props it can no longer extend its transformed variant that explicitely * says to never have the offending function prop. This is used to assert that the given types are primitive * and/or have a UID property, that is, the given types are either a GraphQL mutation argument or flat GraphQL record. * * Technically this can all be turned off with any, so partial use of this is possible if the consumer * for example 'any'ed the FullBaseType. */ createManagerForSchema, CreateType extends GraphQLArgumentAssertion, UpdateType extends GraphQLRecordAssertion, FullBaseType extends RequiredDifference> & NonNullableProps> & NonNullableProps>>>(schema: keyof GenericGraphQLStorageSource, contextId: string, resolvers: ManagerResolvers): DataManager>; export(): StorageState; } //# sourceMappingURL=dataStorageService.d.ts.map