import { Article } from "./Article";
/**
 * Base storage for all articles
 *
 * @export
 * @interface ArticleState
 */
export interface ArticleState {
    /**
     * Batches article state changes that are triggered within the callback
     *
     * @param {() => void} cb
     */
    executeBatch?(cb: () => void): void;
    addArticle(data: Article): void;
    updateArticleProperty<K extends keyof Article>(comId: string, updateProperty: K, newValue: Article[K]): void;
    updateArticleProperties(comId: string, changes: Partial<Article>): void;
    removeArticle(comId: string): void;
    getAllComIds(): string[];
    getArticleByComId(comId: string): Article | undefined;
    getArticleByGfxId(gfxId: string): Article | undefined;
    getComIdByGfxId(gfxId: string): string | undefined;
}
