/********************************************************************************
 * Copyright (C) 2021 STMicroelectronics and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/ import { interfaces } from 'inversify' ; import { Filter } from './filter' ; export type ContributionType = interfaces . ServiceIdentifier < any > ; export const ContributionFilterRegistry = Symbol ( 'ContributionFilterRegistry' ) ; export interface ContributionFilterRegistry { /**
     * Add filters to be applied for every type of contribution.
     */ addFilters ( types , filters ) : void ; param types addFilters ( types , filters ) : void ; param toFilter param type returns applyFilters < T extends Object > ( toFilter , type ) : T [ ] ; } export const FilterContribution = Symbol ( 'FilterContribution' ) ; /**
 * Register filters to remove contributions.
 */ export interface FilterContribution { /**
     * Use the registry to register your contribution filters.
     */ registerContributionFilters ( registry ) : void ; }