import { type ClockSkewOptions } from './clock-skew'; import type { ExecutorOptions, ExecutorTaskStore } from './executor'; import type { LifecycleOptions } from './lifecycle'; import type { MaterializerOptions, RunInTransaction } from './materializer'; import type { ReaperOptions, ReaperTaskStore } from './reaper'; import type { ReconciliationJobStore, ReconciliationOptions, ScheduledJobOwnerRegistry } from './reconciliation'; import type { RetentionOptions, RetentionStore } from './retention'; import type { Scheduler, SchedulerPasses } from './scheduler'; import { type SchedulerMetrics } from '../observability/metrics'; import { type Tracer } from '../observability/tracer'; export type SchedulerEventLevel = 'debug' | 'info' | 'warn' | 'error'; export declare const DEFAULT_DISPATCH_LAG_WARN_THRESHOLD_SECONDS = 30; export interface SchedulerEvent { level: SchedulerEventLevel; message: string; context: Record; } export type SchedulerTaskStore = ExecutorTaskStore & ReaperTaskStore & RetentionStore; export interface SchedulerDeps { hostId: string; materializerTransaction: RunInTransaction; taskStore: SchedulerTaskStore; materializer?: Partial; executor?: Partial; reaper?: Partial; retention?: Partial; reconciliation?: { jobStore: ReconciliationJobStore; owners: ScheduledJobOwnerRegistry; options?: Partial>; }; clockSkew?: Partial; dispatchLagWarnThresholdSeconds?: number; lifecycle?: Partial; now?: () => Promise; onEvent?: (event: SchedulerEvent) => void; tracer?: Tracer; metrics?: SchedulerMetrics; } export declare function createScheduler(deps: SchedulerDeps): Scheduler & SchedulerPasses;