import { Item } from "@aurigma/design-atoms-model/Product/Items";
export declare abstract class Violation {
    prepareItem: (item: Item) => void;
    isAvailableFor(item: Item): boolean;
    getViolationInfo(item: Item, oldViolationInfo: ITotalViolationInfo): IViolationInfo;
    getStatePropertyName(): string;
    getDataPropertyName(): string;
    private static _computeTotalViolationState;
    static computeTotalViolationInfo: (violations: Violation[], item: Item, oldViolationInfo: ITotalViolationInfo) => ITotalViolationInfo;
}
export interface ITotalViolationInfo {
    state: ViolationState;
    data?: {
        [key: string]: IViolationData;
    };
    messages?: string[];
}
export interface IViolationInfo {
    state: ViolationState;
    message?: string;
    data?: IViolationData;
}
export declare class ViolationInfoResult {
    static get none(): {
        state: ViolationState;
    };
    static get good(): {
        state: ViolationState;
    };
}
export interface IViolationData {
}
export declare enum ViolationState {
    None = 0,
    Good = 1,
    Warning = 2,
    Bad = 3
}
