import { State } from "./state";
import { commitSymbol, phaseSymbol, updateSymbol, effectsSymbol, Phase, EffectsSymbols } from "./symbols";
import { GenericRenderer, ComponentOrVirtualComponent } from "./core";
import { ChildPart } from "lit-html";
declare abstract class BaseScheduler
, H extends ComponentOrVirtualComponent> {
renderer: R;
host: H;
state: State;
[phaseSymbol]: Phase | null;
_updateQueued: boolean;
_active: boolean;
_updateCount: number;
_processing: boolean;
static maxUpdates: number;
constructor(renderer: R, host: H);
private _checkForInfiniteLoop;
update(): void;
handlePhase(phase: typeof commitSymbol, arg: unknown): void;
handlePhase(phase: typeof updateSymbol): unknown;
handlePhase(phase: typeof effectsSymbol): void;
render(): unknown;
runEffects(phase: EffectsSymbols): void;
abstract commit(result: unknown): void;
teardown(): void;
pause(): void;
resume(): void;
}
export { BaseScheduler };