import { VegaSlimmer } from '../../vega-slimmer/vega-slimmer-core';
import { SynchronizeTaskQueue } from '../queue/synchronize-task-queue';
/**
 * The current slimmer contains a task queue and will call the task after component re-render.
 */
export declare abstract class AutoRunWhenReRenderTaskQueueSlimmer extends VegaSlimmer {
  protected autoRunTaskQueue: SynchronizeTaskQueue;
  constructor(maxCount?: number);
  /**
   * Update the caret position after the component re-render
   */
  protected executeTaskHook(): Promise<void>;
  /**
   * Push the update task to a queue.
   *
   * @param {boolean} [immediatelyRun] - Should the task run immediately. default is false
   */
  protected enqueueTheTaskIntoQueue(immediatelyRun?: boolean): void;
  protected abstract doTask(): Promise<void>;
}
