export interface NotificationRule {
    type: 'notification';
    checkOnEvents?: Events;
    rules: Rule[];
    messageTitle?: {
        [lang: string]: string;
    };
    message: {
        [lang: string]: string;
    };
    showInModal?: boolean;
    onlyShowOnce?: boolean;
    index?: number;
}
export interface WarningRule {
    type: 'warning' | 'error';
    showAsWarning?: {
        optionValue: string;
        option: string;
    };
    rules: Rule[];
    messageTitle?: {
        [lang: string]: string;
    };
    message: {
        [lang: string]: string;
    };
    index?: number;
}
export interface BannerRule {
    type: 'banner';
    checkOnEvents?: Events;
    rules: Rule[];
    contentItemId: string;
    index?: number;
}
export interface Events {
    option?: string[] | string;
    optionValue?: string[] | string;
    articleCodex?: string[] | string;
}
export interface Rule {
    articles?: string[];
    variantValues?: {
        [opt: string]: string;
    };
    visitedOptions?: string[];
    jsFormula?: string;
    sizes?: any;
}
export type NotificationEventType = ConfigEvent | ArticleEvent | SizeChangeEvent;
export interface ConfigEvent {
    type: 'config';
    data: {
        optionCodex: string;
        optionValueCodex: string;
    };
}
export interface ArticleEvent {
    type: 'article';
    data: {
        articleCodex: string;
    };
}
export interface SizeChangeEvent {
    type: 'size';
    data: {};
}
//# sourceMappingURL=NotificationRule.d.ts.map