import type { ISchedule, IScheduleBackoffPolicy } from './types';
type CronOptions = {
    timezone?: string;
};
type WithoutOverlappingOptions = {
    provider?: string;
    ttlMs?: number;
    key?: string;
};
export type ScheduleBuilderApi = Readonly<{
    everyMinute: () => ScheduleBuilderApi;
    everyMinutes: (minutes: number) => ScheduleBuilderApi;
    everyHour: () => ScheduleBuilderApi;
    everyHours: (hours: number) => ScheduleBuilderApi;
    intervalMs: (ms: number) => ScheduleBuilderApi;
    cron: (expr: string, options?: CronOptions) => ScheduleBuilderApi;
    timezone: (tz: string) => ScheduleBuilderApi;
    jitterMs: (ms: number) => ScheduleBuilderApi;
    backoff: (policy: IScheduleBackoffPolicy) => ScheduleBuilderApi;
    leaderOnly: () => ScheduleBuilderApi;
    runOnStart: () => ScheduleBuilderApi;
    enabledWhen: (value: boolean) => ScheduleBuilderApi;
    withoutOverlapping: (options?: WithoutOverlappingOptions) => ScheduleBuilderApi;
    build: () => ISchedule;
}>;
export declare const Schedule: Readonly<{
    define(name: string, handler: ISchedule["handler"]): ScheduleBuilderApi;
}>;
export declare const ScheduleBuilder: Readonly<{
    create(input: {
        name: string;
        handler: ISchedule["handler"];
    }): ScheduleBuilderApi;
}>;
export default Schedule;
//# sourceMappingURL=Schedule.d.ts.map