import type * as vscode from 'vscode'; import { type ContextFilters } from '../sourcegraph-api/graphql/client'; export declare const REFETCH_INTERVAL_MAP: { durable: { initialInterval: number; backoff: number; }; ephemeral: { initialInterval: number; backoff: number; }; }; export type IsIgnored = false | 'has-ignore-everything-filters' | 'non-file-uri' | 'no-repo-found' | `repo:${string}`; export type GetRepoNamesFromWorkspaceUri = (uri: vscode.Uri) => Promise; type ResultLifetime = 'ephemeral' | 'durable'; export declare class ContextFiltersProvider implements vscode.Disposable { /** * `null` value means that we failed to fetch context filters. * In that case, we should exclude all the URIs. */ private lastContextFiltersResponse; private parsedContextFilters; private cache; private getRepoNamesFromWorkspaceUri; private lastFetchDelay; private lastResultLifetime; private fetchIntervalId; get timerStateForTest(): { delay: number; lifetime: ResultLifetime | undefined; }; private readonly contextFiltersSubscriber; readonly onContextFiltersChanged: (listener: (value: ContextFilters) => void) => () => void; init(getRepoNamesFromWorkspaceUri: GetRepoNamesFromWorkspaceUri): Promise; private fetchContextFilters; private setContextFilters; /** * Overrides context filters for testing. */ setTestingContextFilters(contextFilters: ContextFilters | null): void; private startRefetchTimer; isRepoNameIgnored(repoName: string): boolean; isUriIgnored(uri: vscode.Uri): Promise; dispose(): void; private hasAllowEverythingFilters; private hasIgnoreEverythingFilters; toDebugObject(): { lastContextFiltersResponse: any; }; } /** * A singleton instance of the `ContextFiltersProvider` class. * `contextFiltersProvider.init` should be called and awaited on extension activation. */ export declare const contextFiltersProvider: ContextFiltersProvider; export {}; //# sourceMappingURL=context-filters-provider.d.ts.map