export declare enum ElementType {
    IMG = "img",
    TEXT = "text",
    RECT = "rect",
    LINE = "line",
    MUTIPLE_TEXT = "mutiple_text"
}
export declare enum xAlign {
    LEFT = "left",
    RIGHT = "right",
    CENTER = "center"
}
export declare enum yAlign {
    TOP = "top",
    BOTTOM = "bottom",
    CENTER = "center"
}
export declare enum ElementAlign {
    LEFT = "left",
    RIGHT = "right",
    CENTER = "center"
}
export interface ILinearGradientColor {
    type: 'linear';
    colors: Array<any>;
    rotate: number;
}
export interface IRadialGradientColor {
    type: 'radial';
    colors: Array<any>;
    center: [number, number];
    radius: number;
}
export type IColor = ILinearGradientColor | IRadialGradientColor | string;
export interface IPoster {
    width: number;
    height: number;
    background: IColor;
    directory?: string;
    elements: IElement[];
    sort: number;
}
export interface IElement {
    type: ElementType | string;
    width: number;
    height: number;
    align?: ElementAlign | string;
    zIndex: number;
    x: number | xAlign;
    y: number | yAlign;
    rotate?: number;
    [key: string]: any;
}
export declare enum IImageMode {
    scaleToFill = "scaleToFill",// 	缩放模式，不保持纵横比缩放图片，使图片的宽高完全拉伸至填满 image 元素
    aspectFit = "aspectFit",// 缩放模式，保持纵横比缩放图片，使图片的长边能完全显示出来。也就是说，可以完整地将图片显示出来。
    aspectFill = "aspectFill"
}
export interface TextFragmentStyle {
    color: string;
    fontSize: number;
    fontFamily?: string;
    fontWeight?: string | number;
    letterSpacing?: number;
}
export interface TextFragment extends TextFragmentStyle {
    content: string;
    width?: number;
    fragmentId?: number;
}
export interface ElementImg extends IElement {
    type: ElementType.IMG;
    mode?: IImageMode | string;
    content: string;
    gaussBlur: boolean;
    gaussRadius: number;
    borderRadius: number;
}
export interface ElementText extends IElement, TextFragmentStyle {
    type: ElementType.TEXT;
    content: string;
    lineHeight?: number;
    maxLine?: number;
}
export interface ElementMutipleText extends IElement, TextFragmentStyle {
    type: ElementType.MUTIPLE_TEXT;
    content: TextFragment[];
    lineHeight?: number;
    maxLine?: number;
}
export interface ElementRect extends IElement {
    type: ElementType.RECT;
    color: IColor;
    borderColor: string;
    opacity?: number;
    gaussBlur?: boolean;
    gaussRadius?: number;
    borderRadius?: number;
}
export interface ElementLine extends IElement {
    color: string;
    opacity?: number;
    type: ElementType.LINE;
}
