import { ProductHandler } from "../ProductHandler";
import { EventManager } from "../EventManager";
import { Item } from "@aurigma/design-atoms-model/Product/Items";
import { Violation, ITotalViolationInfo } from "./Violations/Violation";
export declare class ViolationService {
    private _violations;
    private _eventManager;
    private _productHandler;
    private _globalCheck;
    private _globalCheckPeriod;
    private _globalCheckDebounce;
    private _itemsToCheck;
    private _violationInfos;
    private _isStarted;
    constructor(_violations: Violation[], _eventManager: EventManager, _productHandler: ProductHandler);
    private _init;
    getItemInfo: (item: Item, forceUpdate?: boolean) => ITotalViolationInfo;
    extend(violations: Violation[]): void;
    private _checkItem;
    private _scheduleSurfaceItemsCheck;
    private _scheduleItemCheck;
    private _onItemRemoved;
    private _removeViolationItemData;
    private _onItemAdded;
    private _onImageContentChanged;
    private _onContainerCollectionChanged;
    private _itemViolationStateChangedEvent;
    addItemViolationStateChanged(listener: (value: IItemViolationStateChangedEventArgs) => void): void;
    removeItemViolationStateChanged(listener: (value: IItemViolationStateChangedEventArgs) => void): void;
    dispose: () => void;
    private _logStateChanged;
}
export interface IItemViolationStateChangedEventArgs {
    new: IItemViolationInfo;
    old: IItemViolationInfo;
}
export interface IItemViolationInfo extends ITotalViolationInfo {
    item: Item;
}
