/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IStorage } from "../../../base/parts/storage/common/storage.mjs";
import { IEnvironmentService } from "../../environment/common/environment.mjs";
import { IMainProcessService } from "../../ipc/electron-sandbox/services.mjs";
import { AbstractStorageService, StorageScope } from "../common/storage.mjs";
import { IUserDataProfile } from "../../userDataProfile/common/userDataProfile.mjs";
import { IAnyWorkspaceIdentifier } from "../../workspace/common/workspace.mjs";
export declare class NativeStorageService extends AbstractStorageService {
    private readonly initialWorkspace;
    private readonly initialProfiles;
    private readonly mainProcessService;
    private readonly environmentService;
    private readonly applicationStorageProfile;
    private readonly applicationStorage;
    private profileStorageProfile;
    private readonly profileStorageDisposables;
    private profileStorage;
    private workspaceStorageId;
    private readonly workspaceStorageDisposables;
    private workspaceStorage;
    constructor(initialWorkspace: IAnyWorkspaceIdentifier | undefined, initialProfiles: {
        defaultProfile: IUserDataProfile;
        currentProfile: IUserDataProfile;
    }, mainProcessService: IMainProcessService, environmentService: IEnvironmentService);
    private createApplicationStorage;
    private createProfileStorage;
    private createWorkspaceStorage;
    protected doInitialize(): Promise<void>;
    protected getStorage(scope: StorageScope): IStorage | undefined;
    protected getLogDetails(scope: StorageScope): string | undefined;
    close(): Promise<void>;
    protected switchToProfile(toProfile: IUserDataProfile, preserveData: boolean): Promise<void>;
    protected switchToWorkspace(toWorkspace: IAnyWorkspaceIdentifier, preserveData: boolean): Promise<void>;
    hasScope(scope: IAnyWorkspaceIdentifier | IUserDataProfile): boolean;
}
