headplane/app/integration/integration.ts
2025-01-06 08:19:40 +05:30

12 lines
345 B
TypeScript

// eslint-disable-next-line @typescript-eslint/no-explicit-any
export interface IntegrationFactory<T = any> {
name: string;
context: T;
isAvailable: (context: T) => Promise<boolean> | boolean;
onConfigChange?: (context: T) => Promise<void> | void;
}
export function createIntegration<T>(options: IntegrationFactory<T>) {
return options;
}