import { Configuration } from "../configuration"; import { SimpleHandler } from "./handler"; import { Pipeline } from "./pipeline"; import { PipelineRun } from "./pipeline-run"; export abstract class GentracePlugin { abstract config: C; abstract getConfig(): C; abstract advanced< T extends { [key: string]: GentracePlugin }, >(params: { pipeline: Pipeline; pipelineRun: PipelineRun; gentraceConfig: Configuration; }): A; } export type InitPluginFunction = ( config: C | SimpleHandler, ) => Promise>;