using System;
using System.Runtime.InteropServices;
namespace System.Runtime.Remoting.Channels
{
/// Creates client channel sinks for the client channel through which remoting messages flow.
// Token: 0x020003A6 RID: 934
[ComVisible(true)]
public interface IClientChannelSinkProvider
{
/// Gets or sets the next sink provider in the channel sink provider chain.
/// The next sink provider in the channel sink provider chain.
/// The immediate caller does not have infrastructure permission.
///
///
///
// Token: 0x17000709 RID: 1801
// (get) Token: 0x060025B0 RID: 9648
// (set) Token: 0x060025B1 RID: 9649
IClientChannelSinkProvider Next { get; set; }
/// Creates a sink chain.
/// The first sink of the newly formed channel sink chain, or null, which indicates that this provider will not or cannot provide a connection for this endpoint.
/// Channel for which the current sink chain is being constructed.
/// The URL of the object to connect to. This parameter can be null if the connection is based entirely on the information contained in the parameter.
/// A channel data object that describes a channel on the remote server.
/// The immediate caller does not have infrastructure permission.
// Token: 0x060025B2 RID: 9650
IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData);
}
}