import type { IIntegration, IOutgoingIntegration } from '@rocket.chat/core-typings'; export interface IScriptClass { prepare_outgoing_request?: (params: Record) => any; process_outgoing_response?: (params: Record) => any; process_incoming_request?: (params: Record) => any; } export type FullScriptClass = Required; export type CompiledScript = { script: Partial; store: Record; _updatedAt: IIntegration['_updatedAt']; }; export type CompatibilityScriptResult = IScriptClass & { availableFunctions: (keyof IScriptClass)[]; }; export const isOutgoingIntegration = ( integration: Partial, ): integration is IOutgoingIntegration & { type: 'webhook-outgoing' } => integration.type === 'webhook-outgoing' && 'event' in integration && integration.event !== undefined;