import { StyleEntity } from './style.entity';
export type ValueWithDevice<T> = Record<string, T>;
export type UnitValue = {
    value?: number | string;
    unit?: string;
};
export interface TransformValue {
    translateX?: UnitValue;
    translateY?: UnitValue;
    scale?: number;
    rotate?: UnitValue;
}
export type UnitValueOriented = {
    top?: UnitValue;
    right?: UnitValue;
    bottom?: UnitValue;
    left?: UnitValue;
};
export interface ColorGradientPointValue {
    id: string;
    color: string;
    position: number;
}
export interface ColorGradientLinearValue {
    rotate: number;
    points: ColorGradientPointValue[];
    type?: "linear";
    repeat?: boolean;
}
export interface ColorGradientLinearSize {
    width?: {
        value?: number;
        unit?: string;
    };
    height?: {
        value: number;
        unit: string;
    };
}
export interface ColorGradientRadialValue {
    /**
     * Các điểm màu sắc trong gradient
     */
    points: ColorGradientPointValue[];
    /**
     * Kiểu gradient
     */
    type?: "radial";
    /**
     * Vị trí của gradient
     */
    position?: {
        x?: number;
        y?: number;
    };
    /**
     * Kích thước của gradient (đường kính)
     */
    size?: ColorGradientLinearSize;
    /**
     * Lặp lại gradient
     */
    repeat?: boolean;
}
export type ColorGradientValue = ColorGradientLinearValue | ColorGradientRadialValue;
export type StyleField = Record<string, {
    name: string;
    fieldSet: string;
}>;
export interface ShadowValue {
    id: string;
    horizontal?: UnitValue;
    vertical?: UnitValue;
    blur?: UnitValue;
    spread?: UnitValue;
    color: string;
}
export type RawDataEEPV2 = {
    id: string;
    type: string;
    styles: StyleEntity.StyleRawData;
    css?: string;
    css_code: string;
    properties: Record<string, any>;
    children?: string[];
    parent?: string;
};
export interface TrackElementData {
    props?: Record<string, string>;
    structure: any;
}
