import '../../../assert/js/assert.js';
import '../../../globals.js';
import { CanvasContextWrapper, Filter } from '../imports.js';
export default class ColorMatrixFilter extends Filter {
    private m00;
    private m01;
    private m02;
    private m03;
    private m04;
    private m10;
    private m11;
    private m12;
    private m13;
    private m14;
    private m20;
    private m21;
    private m22;
    private m23;
    private m24;
    private m30;
    private m31;
    private m32;
    private m33;
    private m34;
    /**
     * NOTE: It is possible but not generally recommended to create custom ColorMatrixFilter types. They should be
     * compatible with Canvas and SVG, HOWEVER any WebGL/DOM content cannot work with those custom filters, and any
     * combination of multiple SVG or Canvas elements will ALSO not work (since there is no CSS filter function that can
     * do arbitrary color matrix operations). This means that performance will likely be reduced UNLESS all content is
     * within a single SVG block.
     *
     * Please prefer the named subtypes where possible.
     *
     * The resulting color is the result of the matrix multiplication:
     *
     * [ m00 m01 m02 m03 m04 ]   [ r ]
     * [ m10 m11 m12 m13 m14 ]   [ g ]
     * [ m20 m21 m22 m23 m24 ] * [ b ]
     * [ m30 m31 m32 m33 m34 ]   [ a ]
     *                           [ 1 ]
     */
    constructor(m00: number, m01: number, m02: number, m03: number, m04: number, m10: number, m11: number, m12: number, m13: number, m14: number, m20: number, m21: number, m22: number, m23: number, m24: number, m30: number, m31: number, m32: number, m33: number, m34: number);
    /**
     * Appends filter sub-elements into the SVG filter element provided. Should include an in=${inName} for all inputs,
     * and should either output using the resultName (or if not provided, the last element appended should be the output).
     * This effectively mutates the provided filter object, and will be successively called on all Filters to build an
     * SVG filter object.
     */
    applySVGFilter(svgFilter: SVGFilterElement, inName: string, resultName?: string): void;
    /**
     * Given a specific canvas/context wrapper, this method should mutate its state so that the canvas now holds the
     * filtered content. Usually this would be by using getImageData/putImageData, however redrawing or other operations
     * are also possible.
     */
    applyCanvasFilter(wrapper: CanvasContextWrapper): void;
    isSVGCompatible(): boolean;
    isCanvasCompatible(): boolean;
    getCSSFilterString(): string;
}
//# sourceMappingURL=ColorMatrixFilter.d.ts.map