import { Application, Sprite, Texture, Container } from 'pixi.js';
import { IClip } from '../clips/iclip';
/**
 * Update sprite transform based on clip properties
 * Utility function for updating standalone sprites (e.g., video sprites from HTMLVideoElement)
 * For sprites managed by PixiSpriteRenderer, use renderer.updateTransforms() instead
 */
export declare function updateSpriteTransform(clip: IClip, sprite: Sprite): void;
/**
 * Renders video frames using Pixi.js
 * Creates textures directly from VideoFrame/ImageBitmap sources for zero-copy GPU upload
 */
export declare class PixiSpriteRenderer {
    private sprite;
    private targetContainer;
    private pixiSprite;
    private mirrorSprites;
    private mirrorContainer;
    private isMirrorActive;
    private texture;
    private root;
    private strokeGraphics;
    private maskGraphics;
    private shadowGraphics;
    private shadowContainer;
    private animationContainer;
    private resolution;
    private destroyed;
    private lastFrame;
    constructor(_pixiApp: Application | null, sprite: IClip, targetContainer?: Container | null);
    /**
     * Update the sprite with a new video frame or Texture
     * @param frame VideoFrame, ImageBitmap, Texture, or null to render
     *              VideoFrames are consumed (closed) after texture upload.
     */
    updateFrame(frame: VideoFrame | ImageBitmap | Texture | null): Promise<void>;
    /**
     * Apply sprite transformations to the Pixi Sprite
     */
    private applySpriteTransforms;
    /**
     * Apply all styles (stroke, borderRadius, dropShadow) to the sprite
     */
    private applyStyle;
    private applyStroke;
    private applyShadow;
    private applyBlur;
    private applyMotionBlur;
    private applyBrightness;
    private applySelectiveHsl;
    private applyChromaKey;
    updateTransforms(): void;
    getSprite(): Sprite | null;
    getRoot(): Container | null;
    destroy(): void;
}
