import { WorkspaceFolder } from 'vscode-languageserver-protocol'; import { DuoProject, DuoProjectAccessCache } from './project_access_cache'; export declare enum DuoProjectStatus { DuoEnabled = "duo-enabled", DuoDisabled = "duo-disabled", NonGitlabProject = "non-gitlab-project" } export interface DuoProjectAccessChecker { checkProjectStatus(uri: string, workspaceFolder: WorkspaceFolder): { project?: DuoProject; status: DuoProjectStatus; }; } export declare const DuoProjectAccessChecker: import("@gitlab-org/di").InterfaceId; export declare class DefaultDuoProjectAccessChecker { #private; constructor(projectAccessCache: DuoProjectAccessCache); /** * Check if Duo features are enabled for a given DocumentUri. * * We match the DocumentUri to the project with the longest path. * The enabled projects come from the `DuoProjectAccessCache`. * * @reference `DocumentUri` is the URI of the document to check. Comes from * the `TextDocument` object. */ checkProjectStatus(uri: string, workspaceFolder: WorkspaceFolder): { project?: DuoProject; status: DuoProjectStatus; }; }