using System;
using System.Runtime.InteropServices;
namespace System.Runtime.Remoting.Messaging
{
/// Defines the interface for a message sink.
// Token: 0x020003EB RID: 1003
[ComVisible(true)]
public interface IMessageSink
{
/// Synchronously processes the given message.
/// A reply message in response to the request.
/// The message to process.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
// Token: 0x06002718 RID: 10008
IMessage SyncProcessMessage(IMessage msg);
/// Asynchronously processes the given message.
/// Returns an interface that provides a way to control asynchronous messages after they have been dispatched.
/// The message to process.
/// The reply sink for the reply message.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
// Token: 0x06002719 RID: 10009
IMessageCtrl AsyncProcessMessage(IMessage msg, IMessageSink replySink);
/// Gets the next message sink in the sink chain.
/// The next message sink in the sink chain.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x17000764 RID: 1892
// (get) Token: 0x0600271A RID: 10010
IMessageSink NextSink { get; }
}
}