import { Application, Container, Sprite } from 'pixi.js';
import { IClip, Transition } from '../clips';
export declare class TransitionManager {
    private pixiApp;
    private scaleX;
    private scaleY;
    private transitionRenderers;
    private transitionSprites;
    private transFromTexture;
    private transToTexture;
    private transBgGraphics;
    private transClipPool;
    constructor(pixiApp: Application, scaleX: number, scaleY: number);
    /**
     * Reset the visibility of all transition sprites at the start of a frame.
     */
    resetFrame(): void;
    /**
     * Checks if a transition sprite has been created for a given ID.
     */
    getTransitionSprite(id: string): Sprite | undefined;
    /**
     * Retrieve pool container/sprite elements for a given clip to avoid allocations.
     */
    private getTransClipObjects;
    private getClipFrameAtTimestamp;
    private renderClipToTransitionTexture;
    /**
     * Render transition between two clips at a given timeline timestamp.
     * Modifies target claimed set and updates internal transition sprite.
     */
    renderTransition(opts: {
        sprite: Transition & {
            expired?: boolean;
        };
        timestamp: number;
        fromClip: IClip;
        toClip: IClip;
        getFrameCached: (clip: IClip, timestamp: number) => Promise<any>;
        clipsNormalContainer: Container;
        clipsClaimedByTransition: Set<string>;
        onVideoState: () => void;
    }): Promise<boolean>;
    cleanup(): void;
}
