import type { NamedBean } from '../context/bean';
import { BeanStub } from '../context/beanStub';
export declare class ColumnAnimationService extends BeanStub implements NamedBean {
    beanName: "colAnimation";
    private gridBodyCtrl;
    private readonly executeNextFuncs;
    private readonly executeLaterFuncs;
    private active;
    /** Cleared a VM-turn earlier than {@link active} (once `executeNextFuncs` has flushed) so a late
     *  {@link executeNextVMTurn} runs immediately instead of queuing behind an already-flushed batch. */
    private activeNext;
    private suppressAnimation;
    private animationThreadCount;
    /** Nesting depth: only the outermost {@link start}/{@link finish} pair drives the animation, so a wrapped
     *  refresh (e.g. a role-col flush re-entering via pivot-sort) can't end it early. */
    private startDepth;
    postConstruct(): void;
    isActive(): boolean;
    setSuppressAnimation(suppress: boolean): void;
    /** Open an animation window; nestable — only the outermost open actually starts the animation. */
    start(): void;
    /** Close an animation window; the outermost close flushes the queued next/later funcs. */
    finish(): void;
    executeNextVMTurn(func: (...args: any[]) => any): void;
    executeLaterVMTurn(func: (...args: any[]) => any): void;
    private ensureAnimationCssClassPresent;
    private flush;
}
