import type { Dirent } from 'fs'; import { CaseSensitivityDetector } from '../caseSensitivityDetector'; import { FileSystem, ReadOnlyFileSystem, Stats } from '../fileSystem'; import { ServiceProvider } from '../serviceProvider'; import { Uri } from './uri'; export interface FileSpec { wildcardRoot: Uri; regExp: RegExp; hasDirectoryWildcard: boolean; } export declare namespace FileSpec { function is(value: any): value is FileSpec; function isInPath(uri: Uri, paths: FileSpec[]): boolean; function matchesIncludeFileRegex(uri: Uri, isFile?: boolean): boolean; function matchIncludeFileSpec(includeRegExp: RegExp, exclude: FileSpec[], uri: Uri, isFile?: boolean): boolean; } export interface FileSystemEntries { files: Uri[]; directories: Uri[]; } export declare function forEachAncestorDirectory(directory: Uri, callback: (directory: Uri) => Uri | undefined): Uri | undefined; export declare function makeDirectories(fs: FileSystem, dir: Uri, startingFrom: Uri): void; export declare function getFileSize(fs: ReadOnlyFileSystem, uri: Uri): number; export declare function fileExists(fs: ReadOnlyFileSystem, uri: Uri): boolean; export declare function directoryExists(fs: ReadOnlyFileSystem, uri: Uri): boolean; export declare function isDirectory(fs: ReadOnlyFileSystem, uri: Uri): boolean; export declare function isFile(fs: ReadOnlyFileSystem, uri: Uri, treatZipDirectoryAsFile?: boolean): boolean; export declare function tryStat(fs: ReadOnlyFileSystem, uri: Uri): Stats | undefined; export declare function tryRealpath(fs: ReadOnlyFileSystem, uri: Uri): Uri | undefined; export declare function getFileSystemEntries(fs: ReadOnlyFileSystem, uri: Uri): FileSystemEntries; export declare function getFileSystemEntriesFromDirEntries(dirEntries: Iterable, fs: ReadOnlyFileSystem, uri: Uri): FileSystemEntries; export declare function getWildcardRegexPattern(root: Uri, fileSpec: string): string; export declare function getWildcardRoot(root: Uri, fileSpec: string): Uri; export declare function hasPythonExtension(uri: Uri): boolean; export declare function getFileSpec(root: Uri, fileSpec: string): FileSpec; export declare function getDirectoryChangeKind(fs: ReadOnlyFileSystem, oldDirectory: Uri, newDirectory: Uri): 'Same' | 'Renamed' | 'Moved'; export declare function deduplicateFolders(listOfFolders: Uri[][], excludes?: Uri[]): Uri[]; export declare function getRootUri(serviceProvider: ServiceProvider): Uri | undefined; export declare function getRootUri(caseDetector: CaseSensitivityDetector): Uri | undefined; export declare function convertUriToLspUriString(fs: ReadOnlyFileSystem, uri: Uri): string; export declare namespace UriEx { function file(path: string): Uri; function file(path: string, isCaseSensitive: boolean, checkRelative?: boolean): Uri; function parse(path: string | undefined): Uri; function parse(path: string | undefined, isCaseSensitive: boolean): Uri; }