using System;
using System.Runtime.InteropServices;
namespace System.ComponentModel.Design
{
/// Provides a container for services.
// Token: 0x0200004B RID: 75
[ComVisible(true)]
public interface IServiceContainer : IServiceProvider
{
/// Adds the specified service to the service container.
/// The type of service to add.
/// An instance of the service type to add. This object must implement or inherit from the type indicated by the parameter.
// Token: 0x0600030D RID: 781
void AddService(Type serviceType, object serviceInstance);
/// Adds the specified service to the service container.
/// The type of service to add.
/// A callback object that is used to create the service. This allows a service to be declared as available, but delays the creation of the object until the service is requested.
// Token: 0x0600030E RID: 782
void AddService(Type serviceType, ServiceCreatorCallback callback);
/// Adds the specified service to the service container, and optionally promotes the service to any parent service containers.
/// The type of service to add.
/// An instance of the service type to add. This object must implement or inherit from the type indicated by the parameter.
/// true to promote this request to any parent service containers; otherwise, false.
// Token: 0x0600030F RID: 783
void AddService(Type serviceType, object serviceInstance, bool promote);
/// Adds the specified service to the service container, and optionally promotes the service to parent service containers.
/// The type of service to add.
/// A callback object that is used to create the service. This allows a service to be declared as available, but delays the creation of the object until the service is requested.
/// true to promote this request to any parent service containers; otherwise, false.
// Token: 0x06000310 RID: 784
void AddService(Type serviceType, ServiceCreatorCallback callback, bool promote);
/// Removes the specified service type from the service container.
/// The type of service to remove.
// Token: 0x06000311 RID: 785
void RemoveService(Type serviceType);
/// Removes the specified service type from the service container, and optionally promotes the service to parent service containers.
/// The type of service to remove.
/// true to promote this request to any parent service containers; otherwise, false.
// Token: 0x06000312 RID: 786
void RemoveService(Type serviceType, bool promote);
}
}