import { AbstractMaskSystem } from './AbstractMaskSystem';
import type { ExtensionMetadata } from "../../extensions";
import type { Renderer } from '../Renderer';
import type { IMaskTarget, MaskData } from './MaskData';
/**
 * System plugin to the renderer to manage stencils (used for masks).
 * @memberof PIXI
 */
export declare class StencilSystem extends AbstractMaskSystem {
    /** @ignore */
    static extension: ExtensionMetadata;
    /**
     * @param renderer - The renderer this System works for.
     */
    constructor(renderer: Renderer);
    getStackLength(): number;
    /**
     * Applies the Mask and adds it to the current stencil stack.
     * @param maskData - The mask data
     */
    push(maskData: MaskData): void;
    /**
     * Pops stencil mask. MaskData is already removed from stack
     * @param {PIXI.DisplayObject} maskObject - object of popped mask data
     */
    pop(maskObject: IMaskTarget): void;
    /**
     * Setup renderer to use the current stencil data.
     * @private
     */
    _useCurrent(): void;
}
