import { BreezeEnum } from './enum';
/** EntityAction is an 'Enum' containing all of the valid actions that can occur to an 'Entity'.
 
*/
export declare class EntityAction extends BreezeEnum {
    /** Entity was attached via an AttachEntity call. */
    static Attach: EntityAction;
    /**  Entity was attached as a result of a query. */
    static AttachOnQuery: EntityAction;
    /**  Entity was attached as a result of an import. */
    static AttachOnImport: EntityAction;
    /** Entity was detached */
    static Detach: EntityAction;
    /** Properties on the entity were merged as a result of a query. */
    static MergeOnQuery: EntityAction;
    /** Properties on the entity were merged as a result of an import. */
    static MergeOnImport: EntityAction;
    /** Properties on the entity were merged as a result of a save */
    static MergeOnSave: EntityAction;
    /** A property on the entity was changed. */
    static PropertyChange: EntityAction;
    /** The EntityState of the entity was changed. */
    static EntityStateChange: EntityAction;
    /** AcceptChanges was called on the entity, or its entityState was set to Unmodified. */
    static AcceptChanges: EntityAction;
    /** RejectChanges was called on the entity. */
    static RejectChanges: EntityAction;
    /** The EntityManager was cleared.  All entities detached. */
    static Clear: EntityAction;
    /** @hidden @internal */
    _isAttach?: boolean;
    /** @hidden @internal */
    _isDetach?: boolean;
    /** @hidden @internal */
    _isModification: boolean;
    /** Is this an 'attach' operation? ( Attach, AttachOnQuery or AttachOnImport) */
    isAttach(): boolean;
    /** Is this a 'detach' operation? ( Detach, Clear) */
    isDetach(): boolean;
    /** Is this a 'modification' operation? ( PropertyChange, MergeOnQuery, MergeOnSave, MergeOnImport, RejectChanges) */
    isModification(): boolean;
}
