using System;
using System.Collections.Generic;
using DatabaseEditor.BL.Filters.Conditions;

namespace DatabaseEditor.BL.Interfaces
{
    public interface IItemsProvider<TListModel> : ISortable
    {
        int FetchCount();
        IList<TListModel> FetchRange(int startIndex, int count);
        bool Contains(TListModel item);
        void UseConditions(List<PropertyCondition<TListModel>> conditions);
        bool DeleteItem(TListModel item);
        bool DeleteItem(Guid id);
        bool SourceChanged { get; }
    }
}