export interface ReceiptConfig {
    open: boolean;
    which: boolean;
    whichList: Array<{
        label: string;
    }>;
    color: string;
    isShow?: boolean;
    userOpen?: boolean;
    end_up?: number;
}
export interface VideoConfig {
    open: boolean;
    color: string;
    url: string;
    isShow?: boolean;
    userOpen?: boolean;
}
export interface TelConfig {
    open: boolean;
    color: string;
    list: Array<{
        label: string;
        value?: string;
    }>;
    end_up?: number;
    isShow?: boolean;
    userOpen?: boolean;
}
export interface ReceiptForm {
    guestName: string;
    which: string;
    phone: string;
    people: string;
}
export interface MapConfig {
    open: boolean;
    color: string;
    lng: string;
    lat: string;
    location: string;
    zoom: number;
    type: string;
    isShow?: boolean;
    userOpen?: boolean;
    url: string;
}
export interface Animation {
    animate: string;
    count: number;
    timing: string;
    loop: boolean;
    delay: number;
    duration: number;
    name: string;
    order: string;
    type: string;
    aniType: string;
    allDelay: string;
    id: number;
}
export interface MusicData {
    url: string;
    name?: string;
    music_id?: string;
    id?: string;
    bgcolor?: string;
    iconUrl?: string;
    hash?: string | null;
    playIconUrl?: string;
    pauseIconUrl?: string;
    isGlobal?: boolean;
    cat?: string;
    originalUrl?: string;
    crop?: string | null;
}
export interface GlobalData {
    id: number;
    type?: string;
    width?: string;
    height?: string;
    pageMode?: string;
    isPublish?: number;
    title?: string;
    desc?: string;
    coverImg?: string;
    latestPublishAt?: string;
    updatedAt?: string;
    isTemplate?: boolean;
    isHot?: boolean;
    isNew?: boolean;
    author?: string;
    copiedCount?: number;
    tanmu?: boolean;
    themeColor?: string;
    viewedCount?: number;
    cat?: 'h5' | 'long_page';
    sceneId: string;
    user?: {
        gender: string;
        nickName: string;
        picture: string;
        userName: string;
    };
    pageDot: number;
    pageLoop: boolean;
    smImg: string;
    receipt: ReceiptConfig;
    video: VideoConfig;
    tel: TelConfig;
    map: MapConfig;
    merchant_edit_notice?: number;
    toolbar: {
        open: boolean;
        gift: boolean;
        cash: boolean;
        fontColor: string;
        bgColor: string;
        giftRank: boolean;
        praise: boolean;
        hideFirst: boolean;
        hideLast: boolean;
        giftQRCode: string;
        g?: boolean;
    };
    music: MusicData;
    useFont?: Record<string, {
        name: string;
        content: string;
    }>;
    record?: any;
    f_id: number;
    uid: string;
    sceneCode: string;
    createFont?: string;
    domain: string;
    pay_cat: number;
    footer_ad: number;
    merchant_id: number;
    is_weiye: number;
    ver: number;
    systemUser: number;
    member_level: number;
    is_member: number;
    fontList: Array<{
        label: string;
        value: string;
        fontPath: string;
    }>;
    imgMattCount: number;
    defaultEditor: number;
}
interface FormItem {
    label: string;
    value: string;
}
export interface CssData {
    fontFamily?: string;
    fontSize?: number;
    lineHeight?: number;
    letterSpacing?: number;
    fontWeight?: string;
    textDecoration?: string;
    textAlign?: string;
    writingMode?: string;
    webkitWritingMode?: string;
    fontStyle?: string;
    borderWidth?: number;
    borderStyle?: string;
    borderColor?: string;
    color?: string;
    opacity?: number;
    width: number;
    height: number;
    left: number;
    top: number;
    transform: number;
    flipHorizontal?: boolean;
    flipVertical?: boolean;
    padding?: number;
    backgroundColor?: string;
    textIndent?: number;
    borderRadius?: number;
    animation?: string;
    animation2?: string;
    svgPathColor?: string[];
    fontColorOri?: string;
    fontFamilyOri?: string;
    opacityOri?: number;
    fontSizeOri?: number;
}
export interface ElementData {
    id: string | number;
    pid?: string | number;
    type: string;
    textContent?: string;
    layerName: string;
    sign?: boolean;
    signSort?: number | string;
    overturnType?: number;
    dateColor?: string;
    endTime?: string;
    deadline?: string;
    heartAni?: boolean;
    heartColor?: string;
    kind?: number;
    language?: string;
    themeColor?: string;
    btnName?: string;
    videoCode?: string;
    playLoop?: boolean;
    videoCodeOri?: string;
    videoStyle?: string;
    videoType?: number;
    videoUrl?: string;
    playMode?: string;
    playControls?: string;
    imgUrl?: string;
    btnText?: string;
    tel?: string;
    inputType?: string;
    title?: string;
    btName?: string;
    subType?: string;
    succAlert?: string;
    succEvent?: string;
    succUrl?: string;
    showSize?: string;
    signType?: string;
    mapStyle?: string;
    iframeUrl?: string;
    url?: string;
    showType?: string;
    direction?: string;
    endText?: string;
    endOption?: string;
    delay?: number;
    loop?: boolean;
    aniPath?: string;
    groupId?: number | string;
    eleId?: string[];
    css: CssData;
    nameSign?: string;
    nameSignSort?: number;
    nameSignType?: string;
    nameSignColor?: string;
    nameSignFontSize?: number;
    nameSignFontFamily?: string;
    nameSignFontWeight?: string;
    triggers: {
        cat?: string;
        crop?: string;
        event: string;
        link: string;
        go: string;
        phone: string;
        musicName: string;
        musicLink: string;
        musicHash: string;
    };
    properties: {
        visible: boolean;
        isLock: boolean;
        required: boolean;
        musicName: string;
        musicLink: string;
        musicHash: string;
        shadowSize: number;
        shadowColor: string;
        shadowX: number;
        shadowY: number;
        shadowBlur: number;
        shadowPoint: number;
        aniOrigin: string;
        maskBoxImageOutset?: string;
        maskBoxImageRepeat?: string;
        maskBoxImageSlice?: string;
        maskBoxImageSource?: string;
        maskBoxImageWidth?: string;
        markId?: string;
        src?: string;
        realW?: number;
        realH?: number;
        endTime?: string;
        count?: string;
        speed?: string;
        cover?: string;
        type?: string;
        maskId?: string;
        multUpload?: boolean;
        animations: Array<{
            animate: string;
            count: number;
            loop: boolean;
            delay: number;
            duration: number;
            name: string;
            order: string;
            timing: string;
            type: string;
            aniType: string;
            allDelay: string;
            id: number;
            ord?: string;
        }>;
        textAni?: Array<{
            animate: string;
            count: number;
            loop: boolean;
            delay: number;
            duration: number;
            name: string;
            order: string;
            timing: string;
            type: string;
            aniType: string;
            allDelay: string;
            id: number;
        }>;
        lng?: number;
        lat?: number;
        zoom?: number;
        isMapEdit?: number;
        location?: string;
        mapImg?: string;
        mapChange?: string;
    };
    imgMattingInfo?: any | null;
    items?: FormItem[];
    canMatt?: boolean;
    canMattType?: string;
    copyIndex?: number;
    overturnTypeNew?: number;
}
export interface PageData {
    pageId: string;
    pageNum: number;
    bgColor: string;
    bgImage: string;
    pageType: string;
    ani: string;
    banPage: boolean | number;
    autoPage: boolean | number;
    delay: number;
    unStop?: boolean;
    bgOpacity: string;
    height: number;
    eleIndex?: number;
    bgSign?: number;
    type: string;
    elements: ElementData[] | [];
    bgAni?: {
        aniList: Array<{
            animate: string;
            count: number;
            loop: boolean;
            delay: number;
            duration: number;
            name: string;
            order: string;
            timing: string;
            type: string;
            aniType: string;
            allDelay: string;
            id: number;
        }> | [];
        aniCss: string;
        aniCss2?: string;
    };
    imgMattingInfo: any | null;
}
export interface PersonalData {
    bridegroom: string;
    bride: string;
    endTime: number;
    location: string;
    address: string;
    lng?: number;
    lat?: number;
    zoom?: number;
    exchange?: number;
}
export interface WorkData {
    personalData?: PersonalData | null;
    global: GlobalData;
    pages: PageData[] | [];
}
export {};
