using System;
using System.Runtime.InteropServices;
namespace System.Runtime.Remoting.Lifetime
{
/// Defines a lifetime lease object that is used by the remoting lifetime service.
// Token: 0x020003CF RID: 975
[ComVisible(true)]
public interface ILease
{
/// Gets the amount of time remaining on the lease.
/// The amount of time remaining on the lease.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x1700072B RID: 1835
// (get) Token: 0x0600265C RID: 9820
TimeSpan CurrentLeaseTime { get; }
/// Gets the current of the lease.
/// The current of the lease.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x1700072C RID: 1836
// (get) Token: 0x0600265D RID: 9821
LeaseState CurrentState { get; }
/// Gets or sets the initial time for the lease.
/// The initial time for the lease.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x1700072D RID: 1837
// (get) Token: 0x0600265E RID: 9822
// (set) Token: 0x0600265F RID: 9823
TimeSpan InitialLeaseTime { get; set; }
/// Gets or sets the amount of time by which a call to the remote object renews the .
/// The amount of time by which a call to the remote object renews the .
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x1700072E RID: 1838
// (get) Token: 0x06002660 RID: 9824
// (set) Token: 0x06002661 RID: 9825
TimeSpan RenewOnCallTime { get; set; }
/// Gets or sets the amount of time to wait for a sponsor to return with a lease renewal time.
/// The amount of time to wait for a sponsor to return with a lease renewal time.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x1700072F RID: 1839
// (get) Token: 0x06002662 RID: 9826
// (set) Token: 0x06002663 RID: 9827
TimeSpan SponsorshipTimeout { get; set; }
/// Registers a sponsor for the lease without renewing the lease.
/// The callback object of the sponsor.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x06002664 RID: 9828
void Register(ISponsor obj);
/// Registers a sponsor for the lease, and renews it by the specified .
/// The callback object of the sponsor.
/// The length of time to renew the lease by.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
// Token: 0x06002665 RID: 9829
void Register(ISponsor obj, TimeSpan renewalTime);
/// Renews a lease for the specified time.
/// The new expiration time of the lease.
/// The length of time to renew the lease by.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x06002666 RID: 9830
TimeSpan Renew(TimeSpan renewalTime);
/// Removes a sponsor from the sponsor list.
/// The lease sponsor to unregister.
/// The immediate caller makes the call through a reference to the interface and does not have infrastructure permission.
///
///
///
// Token: 0x06002667 RID: 9831
void Unregister(ISponsor obj);
}
}