import { RedisClient, RepeatBaseOptions, RepeatOptions } from '../interfaces'; import { JobsOptions } from '../types'; import { Job } from './job'; import { QueueBase } from './queue-base'; import { RedisConnection } from './redis-connection'; export interface JobSchedulerJson { key: string; name: string; id?: string | null; endDate: number | null; tz: string | null; pattern: string | null; every?: string | null; next?: number; } export declare class JobScheduler extends QueueBase { private repeatStrategy; constructor(name: string, opts: RepeatBaseOptions, Connection?: typeof RedisConnection); upsertJobScheduler(jobSchedulerId: string, repeatOpts: Omit, jobName: N, jobData: T, opts: Omit, { override }: { override: boolean; }): Promise | undefined>; private createNextJob; removeJobScheduler(jobSchedulerId: string): Promise; private getSchedulerData; private keyToData; getJobScheduler(id: string): Promise; getJobSchedulers(start?: number, end?: number, asc?: boolean): Promise; getSchedulersCount(client: RedisClient, prefix: string, queueName: string): Promise; private getSchedulerNextJobId; } export declare const defaultRepeatStrategy: (millis: number, opts: RepeatOptions) => number | undefined;