import { Ctor } from '@ne1410s/codl'; import { JsonOperation } from '@ne1410s/http'; import { IToken } from '../../web-models/token/base'; export declare abstract class PayloadOperation extends JsonOperation { protected baseUrl: string; constructor(baseUrl: string, relativePath: string, requestType: Ctor, responseType: Ctor); serialise(requestData: TRequest): Promise; validateResponse(responseData: IToken): void; /** * Enables a different model to be exposed to the caller besides that which * gets sent as payload. This is called as part serialisation; after * validation has taken place. * @param requestData The request data. */ protected abstract toPayload(requestData: TRequest): Promise; /** * Additional properties of the protected header vary according to context. * @param requestData The request data. */ protected abstract getExtraProtectedData(requestData: TRequest): any; /** * Secret may be obtained from the request else is generated. * @param requestData The request data. */ protected abstract getSecret(requestData: TRequest): JsonWebKey; private getProtectedData; }