import { IRuntimeAction } from '../../IRuntimeAction';
import { ITimerRuntime } from '../../ITimerRuntime';
import { JitStatement } from '../../JitStatement';
import { IRuntimeBlock } from '../../IRuntimeBlock';
import { RuntimeBlock } from './RuntimeBlock';
export declare class TimedGroupBlock extends RuntimeBlock {
    private childSpanRegistry;
    private childIndex;
    private lastLap;
    constructor(source: JitStatement);
    private _updateSpanWithAggregatedChildMetrics;
    /**
     * Called when the block is entered. For TimedGroupBlock, core setup is in onBlockStart.
     */
    protected onEnter(runtime: ITimerRuntime): IRuntimeAction[];
    /**
     * Called when the block's specific timing/activity truly starts.
     */
    protected onBlockStart(runtime: ITimerRuntime): IRuntimeAction[];
    /**
     * Called to process the next child or determine if the block should pop.
     */
    protected onNext(runtime: ITimerRuntime): IRuntimeAction[];
    /**
     * Register a child block's result spans with this group
     */
    registerChildBlock(childBlock: IRuntimeBlock): void;
    /**
     * Called when the block is left. For TimedGroupBlock, core teardown is in onBlockStop.
     */
    protected onLeave(_runtime: ITimerRuntime): IRuntimeAction[];
    /**
     * Called when the block's specific timing/activity truly stops.
     */
    protected onBlockStop(runtime: ITimerRuntime): IRuntimeAction[];
}
