import Gradient, {GradientObject, GradientColorStop} from './Gradient'; 
 | 
  
 | 
export interface LinearGradientObject extends GradientObject { 
 | 
    type: 'linear' 
 | 
  
 | 
    x: number 
 | 
    y: number 
 | 
    x2: number 
 | 
    y2: number 
 | 
} 
 | 
/** 
 | 
 * x, y, x2, y2 are all percent from 0 to 1 when globalCoord is false 
 | 
 */ 
 | 
  
 | 
export default class LinearGradient extends Gradient { 
 | 
  
 | 
    type: 'linear' 
 | 
  
 | 
    x: number 
 | 
    y: number 
 | 
    x2: number 
 | 
    y2: number 
 | 
  
 | 
    constructor( 
 | 
        x: number, y: number, x2: number, y2: number, 
 | 
        colorStops?: GradientColorStop[], globalCoord?: boolean 
 | 
    ) { 
 | 
  
 | 
        super(colorStops); 
 | 
  
 | 
        // Should do nothing more in this constructor. Because gradient can be 
 | 
        // declard by `color: {type: 'linear', colorStops: ...}`, where 
 | 
        // this constructor will not be called. 
 | 
  
 | 
        this.x = x == null ? 0 : x; 
 | 
  
 | 
        this.y = y == null ? 0 : y; 
 | 
  
 | 
        this.x2 = x2 == null ? 1 : x2; 
 | 
  
 | 
        this.y2 = y2 == null ? 0 : y2; 
 | 
  
 | 
        // Can be cloned 
 | 
        this.type = 'linear'; 
 | 
  
 | 
        // If use global coord 
 | 
        this.global = globalCoord || false; 
 | 
    } 
 | 
}; 
 |