import { ElementApiService, ElementsService } from 'dbweb-core';
export declare type CardSize = 'sm' | 'md' | 'lg';
export declare enum CardType {
    navigation = "navigation",
    calendar = "calendar",
    notice = "notice",
    datalist = "datalist",
    chart = "chart"
}
export declare const defaultCardSize: {
    [key: string]: CardSize;
};
export declare type IndexLayout = 'auto' | 'simple';
export interface UserIndexCard {
    Type: CardType;
    Size: CardSize;
    Setting: {
        [key: string]: any;
    };
}
interface UserIndexSetting {
    Layout: IndexLayout;
    Cards: UserIndexCard[];
    NavigationElements: string[];
}
interface BannerSetting {
    DefaultBannerImage: string;
    Banners: {
        ImageURL: string;
        NavigationURL: string;
    }[];
}
interface UserDiary {
    Day: Date;
    Content: string;
}
interface UserNotice {
    ID: string;
    Title: string;
    Time: Date;
    IsReaded: boolean;
    URL: string;
    Sign: string;
    FrontURL: string;
}
export declare class IndexService {
    private api;
    private eles;
    userSetting: UserIndexSetting;
    banner: BannerSetting;
    userDiary: UserDiary[];
    notice: UserNotice[];
    inited: boolean;
    constructor(api: ElementApiService, eles: ElementsService);
    private fetchIndexSetting;
    private updateIndexSetting;
    private fetchBanner;
    private fetchIndexUserDiary;
    private removeIndexUserDiary;
    private updateIndexUserDiary;
    private fetchMyNotice;
    init(): void;
    initCalendar(): void;
    initNotice(): void;
    updateUserDiary(day: Date, content: string): import("rxjs").Observable<boolean>;
    removeUserDiary(day: Date): import("rxjs").Observable<boolean>;
    updateSetting(): import("rxjs").Observable<unknown>;
}
export {};
