@smythos/sdk
Version:
41 lines (31 loc) • 1.61 kB
text/typescript
//!!! 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;
};