import { JSONSchema } from 'json-schema-to-ts'; import type { EventPattern, NativePattern } from './types/patterns'; /** * EventBridgeContract: * * a contract used to define a type-safe interaction between AWS Services through EventBridge. * * Main features: * - input and output dynamic validation with JSONSchemas on both end of the contract; * - type inference for both input and output; * - generation of a contract document that can be checked for breaking changes; */ export declare class EventBridgeContract { id: string; contractType: "eventBridge"; sources: Sources; eventType: EventType; payloadSchema: PayloadSchema; /** * a native event pattern: * ```ts * { * source: string[]; * 'detail-type': string[]; * } * ``` */ nativePattern: NativePattern; /** * an event pattern accepted by the CDK: * ```ts * { * source: string[]; * detailType: string[]; * } * ``` */ pattern: EventPattern; /** * Builds a new EventBridgeContract contract */ constructor({ id, sources, eventType, payloadSchema, }: { /** * A unique id to identify the contract among stacks. Beware uniqueness! */ id: string; /** * The sources of the event. * * Please note that the `as const` directive is necessary to properly infer the type from the schema. * See https://github.com/ThomasAribart/json-schema-to-ts#fromschema. * * @type string[] */ sources: Sources; /** * The event type. * * @type string */ eventType: EventType; /** * A JSONSchema used to validate the payload and infer its type. * * Please note that the `as const` directive is necessary to properly infer the type from the schema. * See https://github.com/ThomasAribart/json-schema-to-ts#fromschema. * * Also please note that for Typescript reasons, you need to explicitly pass `undefined` if you don't want to use the schema. */ payloadSchema: PayloadSchema; }); } //# sourceMappingURL=eventBridgeContract.d.ts.map