import ResourceTypeRegistry from "../ResourceTypeRegistry"; import { FinalizedRequest, ServerReq, ServerRes } from "../types/"; import Resource, { ResourceWithId } from "../types/Resource"; import ResourceIdentifier from "../types/ResourceIdentifier"; import { TransformMeta } from "../types/Document"; export declare type Extras = { request: FinalizedRequest; serverReq: U; serverRes: V; registry: ResourceTypeRegistry; }; export declare type Transformable = Resource | ResourceIdentifier; export declare type TransformMode = 'beforeSave' | 'beforeRender'; export declare type TransformResult = T | undefined | Promise; export declare type TransformFn = (resourceOrIdentifier: T, meta: TransformMeta, extras: Extras, superFn: (it: T, meta: TransformMeta) => TransformResult) => TransformResult; export declare type ResourceTransformFn = TransformFn; export declare type FullTransformFn = TransformFn; export declare type BeforeRenderResourceTransformFn = TransformFn; export declare type BeforeRenderFullTransformFn = TransformFn; export default function makeTransformFn(mode: TransformMode, extras: Extras): (it: ResourceIdentifier | Resource, meta: TransformMeta) => Promise;