using System;
using Avalonia.Input.Raw;
using Avalonia.Metadata;
namespace Avalonia.Input
{
///
/// Receives input from the windowing subsystem and dispatches it to interested parties
/// for processing.
///
[NotClientImplementable]
public interface IInputManager
{
///
/// Gets an observable that notifies on each input event received before
/// .
///
IObservable PreProcess { get; }
///
/// Gets an observable that notifies on each input event received.
///
IObservable Process { get; }
///
/// Gets an observable that notifies on each input event received after
/// .
///
IObservable PostProcess { get; }
///
/// Processes a raw input event.
///
/// The raw input event.
void ProcessInput(RawInputEventArgs e);
}
}