import { LegacyRootDatabaseService, PluginDatabaseManager } from '@backstage/backend-common';
import { Config } from '@backstage/config';
import { Logger } from 'winston';
import { PluginTaskScheduler } from './types';
/**
 * Deals with the scheduling of distributed tasks.
 *
 * @public
 */
export declare class TaskScheduler {
    private readonly databaseManager;
    private readonly logger;
    static fromConfig(config: Config, options?: {
        databaseManager?: LegacyRootDatabaseService;
        logger?: Logger;
    }): TaskScheduler;
    constructor(databaseManager: LegacyRootDatabaseService, logger: Logger);
    /**
     * Instantiates a task manager instance for the given plugin.
     *
     * @param pluginId - The unique ID of the plugin, for example "catalog"
     * @returns A {@link PluginTaskScheduler} instance
     */
    forPlugin(pluginId: string): PluginTaskScheduler;
    static forPlugin(opts: {
        pluginId: string;
        databaseManager: PluginDatabaseManager;
        logger: Logger;
    }): PluginTaskScheduler;
}
