import { ContributionProvider, Emitter, Event } from '@theia/core';
export declare const WorkspaceSearchFilterProvider: unique symbol;
/**
 * Interface for a provider of workspace search filters to the {@link WorkspaceSearchFilterService}.
 * Currently, only exclusion globs can be provided.
 */
export interface WorkspaceSearchFilterProvider {
    /** Obtain zero or more file glob patterns for exclusions from searches in the workspace. */
    getExclusionGlobs(): string[];
    /** An event signalling when the exclusion globs provided by this provider have changed. */
    readonly onExclusionGlobsChanged: Event<void>;
}
/**
 * A service providing workspace search filters to clients performing searches over files in the
 * workspace. Clients may use these filters in whatever way makes most sense for them.
 */
export declare class WorkspaceSearchFilterService {
    protected readonly providers: ContributionProvider<WorkspaceSearchFilterProvider>;
    protected readonly onExclusionGlobsChangedEmitter: Emitter<void>;
    /** An event signalling when the exclusion globs provided by this provider have changed. */
    readonly onExclusionGlobsChanged: Event<void>;
    protected exclusionGlobs: string[] | undefined;
    protected init(): void;
    /**
     * Obtain zero or more glob patterns matching files to exclude from searches in the workspace.
     */
    getExclusionGlobs(): string[];
}
//# sourceMappingURL=workspace-search-filter-service.d.ts.map