import { SpruceSchemas } from '@sprucelabs/mercury-types'; import { Schema, AreAnyFieldsRequired } from '@sprucelabs/schema'; export type EventTargetSchema = SpruceSchemas.SpruceEventUtils.v2021_09_13.EventTargetSchema; export type EventTarget = SpruceSchemas.SpruceEventUtils.v2021_09_13.EventTarget; export type EventSourceSchema = SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSourceSchema; export type EventSource = SpruceSchemas.SpruceEventUtils.v2021_09_13.EventSource; export interface TargetAndPayload { id: string; fields: Omit<{ source: { type: 'schema'; isRequired: false; options: { schema: EventSourceSchema; }; }; target: { type: 'schema'; isRequired: AreAnyFieldsRequired; options: { schema: TargetSchema; }; }; payload: { type: 'schema'; isRequired: AreAnyFieldsRequired; options: { schema: PayloadSchema; }; }; }, (TargetSchema extends undefined ? 'target' : '') | (PayloadSchema extends undefined ? 'payload' : '')>; } declare function buildEmitTargetAndPayloadSchema(options: { eventName: string; payloadSchema?: Payload; targetSchema?: Target; }): TargetAndPayload; export default buildEmitTargetAndPayloadSchema;