import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
import { Cron } from 'croner';
import { Injector } from '../../common';
import { ScheduledTask } from '../../scheduler/scheduled-task';
import { SchedulerStrategy, TaskReport } from '../../scheduler/scheduler-strategy';
/**
 * @description
 * The default {@link SchedulerStrategy} implementation that uses the database to
 * execute scheduled tasks. This strategy is configured when you use the
 * {@link DefaultSchedulerPlugin}.
 *
 * @since 3.3.0
 * @docsCategory scheduled-tasks
 */
export declare class DefaultSchedulerStrategy implements SchedulerStrategy {
    private connection;
    private injector;
    private intervalRef;
    private readonly tasks;
    private pluginOptions;
    private runningTasks;
    init(injector: Injector): void;
    destroy(): Promise<void>;
    registerTask(task: ScheduledTask): void;
    executeTask(task: ScheduledTask): (job?: Cron) => Promise<void>;
    getTasks(): Promise<TaskReport[]>;
    getTask(id: string): Promise<TaskReport | undefined>;
    updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport>;
    triggerTask(task: ScheduledTask): Promise<void>;
    private checkForManuallyTriggeredTasks;
    private entityToReport;
    private ensureAllTasksAreRegistered;
    private ensureTaskIsRegistered;
}
