// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.Collections.ObjectModel;
using System.IO;

namespace Wox.Infrastructure.Storage
{
    public interface IFileSystemWatcherWrapper
    {
        // Events to watch out for
        event FileSystemEventHandler Created;

        event FileSystemEventHandler Deleted;

        event FileSystemEventHandler Changed;

        event RenamedEventHandler Renamed;

        // Properties of File System watcher
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "Abstract properties can not have private set")]
        Collection<string> Filters { get; set; }

        bool EnableRaisingEvents { get; set; }

        NotifyFilters NotifyFilter { get; set; }

        string Path { get; set; }

        bool IncludeSubdirectories { get; set; }
    }
}
