import { Secret, CanonicalRequest, Timestamp, SignedRequestWithoutContextHeaders, Context, SubjectHeadersApp, SignedRequestWithContextHeadersWithApp, SubjectHeadersUser, SignedRequestWithContextHeadersWithUser, TimeToLive } from './typings/index.js'; export { AppActionCallContext, AppActionCategoryBodyMap, AppActionCustomCategoryBody, AppActionEntriesV1CategoryBody, AppActionNotificationsV1CategoryBody, AppActionRequest, AppActionRequestBody, AppActionResponse, AppContextSignedHeaders, AppEventAppInstallation, AppEventAsset, AppEventBulkAction, AppEventComment, AppEventContentType, AppEventEntry, AppEventFilterResponse, AppEventHandlerResponse, AppEventPayloadMap, AppEventRelease, AppEventReleaseAction, AppEventRequest, AppEventScheduledAction, AppEventTask, AppEventTemplateInstallation, AppEventTransformationResponse, AppEventWorkflow, AssetArchiveEventPayload, AssetAutosaveEventPayload, AssetCreateEventPayload, AssetDeleteEventPayload, AssetPublishEventPayload, AssetSaveEventPayload, AssetUnarchiveEventPayload, AssetUnpublishEventPayload, CanonicalRequestValidator, ContentTypeCreateEventPayload, ContentTypeDeleteEventPayload, ContentTypePublishEventPayload, ContentTypeSaveEventPayload, ContentTypeUnpublishEventPayload, ContentfulContextHeader, ContentfulHeader, CreateCommentEventPayload, CreateTaskEventPayload, DeleteCommentEventPayload, DeleteTaskEventPayload, EntryArchiveEventPayload, EntryAutosaveEventPayload, EntryCreateEventPayload, EntryDeleteEventPayload, EntryPublishEventPayload, EntrySaveEventPayload, EntryUnarchiveEventPayload, EntryUnpublishEventPayload, FunctionEvent, FunctionEventContext, FunctionEventHandler, FunctionEventType, FunctionTypeEnum, GraphQLFieldTypeMapping, GraphQLFieldTypeMappingResponse, GraphQLQueryResponse, NormalizedCanonicalRequest, RequestMetadata, RequestMetadataValidator, SaveTaskEventPayload, SecretValidator, SignedContextHeaders, SignedRequestHeaders, TimeToLiveValidator, TimestampValidator, UserContextSignedHeaders } from './typings/index.js'; import 'contentful-management'; import 'runtypes'; declare class ExpiredRequestException extends Error { private readonly ttl; constructor(ttl: number); } /** * Given a secret, a canonical request, a timestamp and context headers, generates a signature. * ~~~ * @category Requests */ declare function signRequest(rawSecret: Secret, rawCanonicalRequest: CanonicalRequest, rawTimestamp?: Timestamp): SignedRequestWithoutContextHeaders; declare function signRequest(rawSecret: Secret, rawCanonicalRequest: CanonicalRequest, rawTimestamp?: Timestamp, rawContext?: Context): SignedRequestWithContextHeadersWithApp; declare function signRequest(rawSecret: Secret, rawCanonicalRequest: CanonicalRequest, rawTimestamp?: Timestamp, rawContext?: Context): SignedRequestWithContextHeadersWithUser; /** * Given a secret verifies a CanonicalRequest. It also throws when signature is older than `rawTimeToLive` seconds. * Pass `rawTimeToLive = 0` to disable TTL checks. * * ~~~ * const { verifyRequest } = require('@contentful/node-apps-toolkit') * const { server } = require('./imaginary-server') * const { makeCanonicalRequestFromImaginaryServerRequest } = require('./imaginary-utils') * * const SECRET = process.env.SECRET * const REQUEST_TTL = Number.parseInt(process.env.REQUEST_TTL, 10) * * server.post('/api/my-resources', (req, res) => { * const canonicalRequest = makeCanonicalRequestFromImaginaryServerRequest(req) * * try { * const isVerifiedRequest = verifyRequest(SECRET, canonicalRequest, REQUEST_TTL) * * if (!isVerifiedRequest) { * res.send(403, 'Invalid signature') * } * } catch (_error) { * res.send(422, 'Unable to verify request') * } * * // Rest of the code * }) * * ~~~ * @category Requests */ declare const verifyRequest: (rawSecret: Secret, rawCanonicalRequest: CanonicalRequest, rawTimeToLive?: TimeToLive) => boolean; export { CanonicalRequest, Context, ExpiredRequestException, Secret, SignedRequestWithContextHeadersWithApp, SignedRequestWithContextHeadersWithUser, SignedRequestWithoutContextHeaders, SubjectHeadersApp, SubjectHeadersUser, TimeToLive, Timestamp, signRequest, verifyRequest };