/// <reference types="plugin-typings" />
import { IInitFabricObj, IGradientOptions } from '../../interface';
import Converter from './Converter';
import { fabric } from 'fabric';
type IAllLayer = TextNode | RectangleNode | LineNode | FrameNode | VectorNode;
interface IPosition {
    left: number;
    top: number;
    width: number;
    height: number;
}
interface IStrokeStyle {
    stroke: string | IGradientOptions;
    strokeWidth: number;
    strokeDashArray: number[];
    strokeLineCap: string;
    strokeLineJoin: string;
    paintFirst: string;
}
declare class ConverterCommon {
    converter: Converter;
    constructor(converter: Converter);
    /**
     * 解析公共的属性
     * @param layer 需要解析的层
     * @returns 解析的结果
     */
    converterCommon(layer: IAllLayer): IInitFabricObj;
    /**
     * 获取组元素位置和大小信息
     * @param objects 组内所有元素
     * @returns 位置和大小信息
     */
    getGroupPosition(objects: IInitFabricObj[]): IPosition;
    /**
     * 解析文字图层的填充
     * @param layer 文字图层
     * @returns 解析结果
     */
    converterFill(layer: IAllLayer): string | IGradientOptions;
    /**
     * 解析文字的外阴影
     * @param layer 需要解析的层
     * @returns 解析结果
     */
    converterShadow(layer: IAllLayer): fabric.IShadowOptions | boolean;
    /**
     * 解析图层的描边属性
     * @param layer 需要解析的图层
     * @returns 解析结果
     */
    converterStroke(layer: IAllLayer): IStrokeStyle | boolean;
    /**
     * 重新设置图片的位置信息
     * @param fill 填充样式
     * @param styleObject 图片的初始信息
     */
    resetImagePositionAsync(fill: ImagePaint, styleObject: IInitFabricObj): Promise<void>;
    /**
     * 转换文字的高亮字，目前支持纯色、线性渐变、径向渐变
     * @param layer 需要解析的层
     * @returns 解析结果
     */
    converterTextStyles(layer: IAllLayer): (string | IGradientOptions)[];
    private resetImagePositionFillAsync;
    private resetImagePositionFitAsync;
    private resetImagePositionStretchAsync;
    private getGradientLinear;
    private getGradientRadial;
    getShow(effectList: Paint[]): Paint;
    private converterColor;
    private resetColorStops;
    getImgUrl(id: string): string;
    getImgSizeAsync(url: string): Promise<{
        width: number;
        height: number;
    }>;
}
export default ConverterCommon;
