import { Article } from "./Article";
import { ApplicationStateValue } from "./ApplicationState";
export interface NotificationPayloadItemChanged {
    previousArticle: Article;
    article: Article;
}
export interface NotificationPayloadLocalizationChanged {
    language: string;
    locale: string;
}
export declare type NotificationPayloadApplicationStateValueChanged<AppStateValue extends ApplicationStateValue> = {
    [key in keyof AppStateValue]: {
        key: key;
        value: AppStateValue[key];
    };
}[keyof AppStateValue];
export interface NotificationPayloads<AppStateValue extends ApplicationStateValue = ApplicationStateValue> {
    ItemChanged: NotificationPayloadItemChanged;
    ItemConfigured: Article;
    ItemCreated: Article;
    ItemRemoved: Article;
    ItemGfxInserted: Article;
    ItemGfxRemoved: Article;
    LocalizationChanged: NotificationPayloadLocalizationChanged;
    ApplicationStateValueChanged: NotificationPayloadApplicationStateValueChanged<AppStateValue>;
}
export declare type Notifications = keyof NotificationPayloads<ApplicationStateValue>;
