import { IRequestClient } from "@pnp/common"; import { IQueryableData } from "./queryable.js"; /** * Defines the context for a given request to be processed in the pipeline */ export interface IRequestContext extends IQueryableData { result?: ReturnType; clientFactory: () => IRequestClient; hasResult: boolean; isBatched: boolean; requestId: string; method: string; } export declare type PipelineMethod = (c: IRequestContext) => Promise>; /** * Sets the result on the context */ export declare function setResult(context: IRequestContext, value: any): Promise>; /** * Executes the current request context's pipeline * * @param context Current context */ export declare function pipe(context: IRequestContext): Promise; /** * decorator factory applied to methods in the pipeline to control behavior */ export declare function requestPipelineMethod(alwaysRun?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; /** * Contains the methods used within the request pipeline */ export declare class PipelineMethods { /** * Logs the start of the request */ static logStart(context: IRequestContext): Promise>; /** * Handles caching of the request */ static caching(context: IRequestContext): Promise>; /** * Sends the request */ static send(context: IRequestContext): Promise>; /** * Logs the end of the request */ static logEnd(context: IRequestContext): Promise>; } export declare function getDefaultPipeline(): (typeof PipelineMethods.logStart)[]; //# sourceMappingURL=pipeline.d.ts.map