import Resource from "../resource"; import { HasId, Operation, EagerLoadedData, MaybeMeta, ApplicationInstanceInterface } from "../types"; export default class OperationProcessor { appInstance: ApplicationInstanceInterface; static resourceClass: typeof Resource; static shouldHandle(resourceType: string): Promise; get resourceClass(): typeof Resource; protected attributes: {}; protected relationships: {}; constructor(appInstance: ApplicationInstanceInterface); execute(op: Operation): Promise; computeRelationshipProperties(op: any, eagerLoadedData: any): Promise; computeDirectRelationsProps(op: Operation, directRelations: any, relationResourceClass: any): Promise; computeNestedRelationsProps(op: Operation, nestedRelations: any, baseRelationResourceClass: any): Promise; eagerLoad(op: Operation, result: ResourceT | ResourceT[]): Promise<{}>; getComputedProperties(op: Operation, resourceClass: typeof Resource, record: HasId, eagerLoadedData: EagerLoadedData): Promise<{}>; matchesComputedFilters(op: Operation, computedAttributes: any): Promise; getAttributes(op: Operation, resourceClass: typeof Resource, record: HasId, eagerLoadedData: EagerLoadedData): Promise>; getRelationships(op: Operation, record: HasId, eagerLoadedData: EagerLoadedData): Promise<{}>; getRelationshipAttributes(op: Operation, resourceClass: typeof Resource, record: HasId, eagerLoadedData: EagerLoadedData): Promise>; convertToResources(op: Operation, records: HasId[] | HasId, eagerLoadedData: EagerLoadedData[]): any; resourceFor(resourceType: string): Promise; processorFor(resourceType: string): Promise>; get(op: Operation): Promise; remove(op: Operation): Promise; update(op: Operation): Promise; add(op: Operation): Promise; meta(resourceOrResources: ResourceT | ResourceT[]): Promise; metaFor(op: Operation, resourceOrResources: ResourceT | ResourceT[]): Promise; metaForGet(resourceOrResources: ResourceT | ResourceT[]): Promise; metaForAdd(resourceOrResources: ResourceT | ResourceT[]): Promise; metaForUpdate(resourceOrResources: ResourceT | ResourceT[]): Promise; resourceMeta(resource: ResourceT): Promise; resourceMetaFor(op: Operation, resource: ResourceT): Promise; resourceMetaForGet(resource: ResourceT): Promise; resourceMetaForAdd(resource: ResourceT): Promise; resourceMetaForUpdate(resource: ResourceT): Promise; }