    package flare.vis.operator
    {
        import flare.animate.Transitioner;
        import flare.vis.Visualization;

        import mx.core.IMXMLObject;

        /**
         * Interface for operators that perform processing tasks on the contents
         * of a Visualization. These tasks include layout, and color, shape, and
         * size encoding. Custom operators can be defined by implementing this
         * interface;
         */
        public interface IOperator extends IMXMLObject
        {
            /** The visualization processed by this operator. */
            function get visualization():Visualization;
            function set visualization(v:Visualization):void;

            /** Indicates if the operator is enabled or disabled. */
            function get enabled():Boolean;
            function set enabled(b:Boolean):void;

            /**
             * Sets parameter values for this operator.
             * @params an object containing parameter names and values.
             */
            function set parameters(params:Object):void;

            /**
             * Performs an operation over the contents of a visualization.
             * @param t a Transitioner instance for collecting value updates.
             */
            function operate(t:Transitioner=null):void;

            /**
             * Setup method invoked whenever this operator's visualization
             * property is set.
             */
            function setup():void;

        } // end of interface IOperator
    }