UNPKG

@smythos/sdk

Version:
41 lines (31 loc) 1.61 kB
//!!! DO NOT EDIT THIS FILE, IT IS AUTO-GENERATED !!!// import { LocalSchedulerConfig } from '@smythos/sre'; import { AccessCandidate } from '@smythos/sre'; import { SchedulerInstance } from '../../Scheduler/SchedulerInstance.class'; import { Scope } from '../SDKTypes'; // Define scheduler provider settings mapping export type TSchedulerProviderSettings = { default: {} // Empty config for default provider LocalScheduler: LocalSchedulerConfig & {scope?: Scope | AccessCandidate} }; // #region [ Handle extendable Scheduler Providers ] ================================================ // Base provider type derived from settings export type TBuiltinSchedulerProvider = keyof TSchedulerProviderSettings; // Extensible interface for custom providers export interface ISchedulerProviders {} // Combined provider type that can be extended export type TSchedulerProvider = TBuiltinSchedulerProvider | keyof ISchedulerProviders; // For backward compatibility, export the built-in providers as enum-like object export const TSchedulerProvider: Record<TBuiltinSchedulerProvider, TBuiltinSchedulerProvider> = { default: 'default', LocalScheduler: 'LocalScheduler', } as const; // #endregion // Generic type to get settings for a specific provider export type TSchedulerSettingsFor<T extends keyof TSchedulerProviderSettings> = TSchedulerProviderSettings[T]; export type TSchedulerProviderInstances = { [K in TSchedulerProvider]: ( settings?: TSchedulerSettingsFor<K>, scope?: Scope | AccessCandidate ) => SchedulerInstance; };