import type { PerformSafety } from "./ActionDefinition"; import type { CollectionType } from "./ConfigVars"; import type { DataSourceType } from "./DataSourceResult"; import type { InputFieldType } from "./Inputs"; import type { OutputSchema } from "./OutputSchema"; export interface ComponentManifest { key: string; public: boolean; signature: string | null; actions: Record; triggers: Record; dataSources: Record; connections: Record; } interface BaseInput { inputType: InputFieldType; collection?: CollectionType | undefined; required?: boolean; default?: unknown; } export interface ComponentManifestAction { key?: string; perform: (values: any) => Promise; examplePerform?: (values: any) => Promise; examplePerformSafety?: PerformSafety; performSafety?: PerformSafety; inputs: Record; examplePayload?: unknown; /** Declares the shape of this action's output `data` as a JSON Schema (discriminated union: actionOutput | branchingOutput). */ outputSchema?: OutputSchema; } export interface ComponentManifestTrigger { key?: string; perform: (values: any) => Promise; inputs: Record; } export interface ComponentManifestDataSource { key?: string; perform: (values: any) => Promise; dataSourceType: DataSourceType; inputs: Record; } export interface ComponentManifestConnection { key?: string; perform: (values: any) => Promise; onPremAvailable?: boolean; inputs: Record; } export {};