import { ITextFileStreamContent, ITextFileContent, IResourceEncodings, IResourceEncoding, IReadTextFileOptions_Input as IReadTextFileOptions, IWriteTextFileOptions_Input as IWriteTextFileOptions, FileContentStatus } from '@files-stack/core'; import { URI } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; import { Disposable } from '@workbench-stack/core'; import { IFileStatWithMetadata, ICreateFileOptions_Input as ICreateFileOptions, IFileService } from '@files-stack/core'; import { IConfigurationService, IEnvironmentService, ILifecycleService, IWorkspaceContextService } from '@workbench-stack/core'; import { ITextSnapshot } from '@vscode-alt/monaco-editor/esm/vs/editor/common/model'; import { Container } from 'inversify'; import { INodeTextFileService, IFilesSettings } from '@files-stack/core'; import { CdmLogger } from '@cdm-logger/core'; import { AbstractTextFileService } from './abstract-textfile-service'; export declare class EncodingOracle extends Disposable implements IResourceEncodings { private environmentService; private contextService; private fileService; protected encodingOverrides: IEncodingOverride[]; constructor(environmentService: IEnvironmentService, contextService: IWorkspaceContextService, fileService: IFileService); private registerListeners; private getDefaultEncodingOverrides; getWriteEncoding(resource: URI, options?: IWriteTextFileOptions): Promise<{ encoding: string; addBOM: boolean; }>; getPreferredWriteEncoding(resource: URI, preferredEncoding?: string): IResourceEncoding; getReadEncoding(resource: URI, options: IReadTextFileOptions | undefined, detectedEncoding: string | null): string; private getEncodingForResource; private getEncodingOverride; } export declare class NodeTextFileService extends AbstractTextFileService implements INodeTextFileService { protected configurationService: IConfigurationService; protected contextService: IWorkspaceContextService; protected environmentService: IEnvironmentService; protected lifecycleService: ILifecycleService; protected fileService: IFileService; protected container: Container; private _encoding; private settings; private pubsub; protected logger: CdmLogger.ILogger; constructor(configurationService: IConfigurationService, contextService: IWorkspaceContextService, environmentService: IEnvironmentService, lifecycleService: ILifecycleService, fileService: IFileService, container: Container, _encoding: EncodingOracle, settings: IFilesSettings, logger: CdmLogger.ILogger, pubsub: any); private registerListeners; get encoding(): EncodingOracle; read(resource: URI, options?: IReadTextFileOptions): Promise>>; readStream(resource: URI, options?: IReadTextFileOptions): Promise>>; readStringStream(resource: URI, options?: IReadTextFileOptions): Promise<{ value: string; status: FileContentStatus; encoding: string; mtime: import("@files-stack/core").Scalars["BigInt"]; etag: import("@files-stack/core").Scalars["String"]; size: import("@files-stack/core").Scalars["Int"]; resource: import("@files-stack/core").Scalars["URI"]; name: import("@files-stack/core").Scalars["String"]; isReadonly?: import("@files-stack/core").Maybe; }>; private doRead; private ensureLimits; private streamToNodeReadable; private nodeReadableToString; private nodeReadableToStream; protected doCreate(resource: URI, value?: string, options?: ICreateFileOptions): Promise; write(resource: URI, value: string | ITextSnapshot, options?: IWriteTextFileOptions): Promise; writeStream(resource: URI, value: string | ITextSnapshot, options?: IWriteTextFileOptions): Promise; private getEncodedReadable; private snapshotToNodeReadable; private nodeStreamToReadable; private writeElevated; private sudoPromptCopy; } export interface IEncodingOverride { parent?: URI; extension?: string; encoding: string; }