export type Scheduler<R, U extends User> = {
start: () => Effect<R, SchedulerStartupError, void>;
stop: () => Effect<R, ProgramError, void>;
addHandler: (jobHandler: Job.AnyHandler) => void;
schedule: <A extends JsonObject>(
job: Job.Descriptor<A, U>,
) => Effect<R, SchedulerError, Job.Job<A, U>>;
};
export type Scheduler<R, U extends User> = {
start: () => Effect<R, SchedulerStartupError, void>;
stop: () => Effect<R, ProgramError, void>;
addHandler: (jobHandler: Job.AnyHandler) => void;
schedule: <A extends JsonObject>(
job: Job.Descriptor<A, U>,
) => Effect<R, SchedulerError, Job.Job<A, U>>;
};