import { DataEntity } from '../data-entity';
export type StorableEvent<TServer extends DataEntity> = {
    name: string;
    extraDataFunc?: (item: TServer) => {
        ignore?: boolean;
        skipStoreUpdate?: boolean;
        params?: any;
    };
    itemExtractor?: (item: any) => TServer;
    isDelete: boolean;
};
export type StorableSubEntityEvent = {
    name: string;
    idField?: string;
    parentField: string;
    field: string;
    isDelete: boolean;
    ignoreFields: string[];
    eventToRaise: string;
};
export type EventCallbackOptions = {
    /**
     * When true, the callback will also be invoked for events where the store
     * update was skipped (e.g. the entity isn't in the local store).
     * When omitted or false, those events are silently dropped.
     */
    notifyOnSkippedStoreUpdate?: boolean;
};
export type StorableEventUnsubscribe = () => void;
