import Resource from "../resource"; import { HasId, Operation, EagerLoadedData } from "../types"; import ApplicationInstance from "../application-instance"; export default class OperationProcessor { appInstance: ApplicationInstance; static resourceClass: typeof Resource; static shouldHandle(resourceType: string): Promise; readonly resourceClass: typeof Resource; protected attributes: {}; protected relationships: {}; constructor(appInstance: ApplicationInstance); execute(op: Operation): Promise; eagerLoad(op: Operation, result: ResourceT | ResourceT[]): Promise<{}>; getComputedProperties(op: Operation, resourceClass: typeof Resource, record: HasId, eagerLoadedData: EagerLoadedData): 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; }