/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { URI } from "../../../base/common/uri.mjs";
import { IEnvironmentService } from "../../environment/common/environment.mjs";
import { IFileService } from "../../files/common/files.mjs";
import { ILogService } from "../../log/common/log.mjs";
import { IStateService } from "./state.mjs";
export declare class FileStorage {
    private readonly storagePath;
    private readonly logService;
    private readonly fileService;
    private storage;
    private lastSavedStorageContents;
    private readonly flushDelayer;
    private initializing;
    private closing;
    constructor(storagePath: URI, logService: ILogService, fileService: IFileService);
    init(): Promise<void>;
    private doInit;
    getItem<T>(key: string, defaultValue: T): T;
    getItem<T>(key: string, defaultValue?: T): T | undefined;
    setItem(key: string, data?: object | string | number | boolean | undefined | null): void;
    setItems(items: readonly {
        key: string;
        data?: object | string | number | boolean | undefined | null;
    }[]): void;
    removeItem(key: string): void;
    private save;
    private doSave;
    close(): Promise<void>;
}
export declare class StateService implements IStateService {
    readonly _serviceBrand: undefined;
    protected readonly fileStorage: FileStorage;
    constructor(environmentService: IEnvironmentService, logService: ILogService, fileService: IFileService);
    init(): Promise<void>;
    getItem<T>(key: string, defaultValue: T): T;
    getItem<T>(key: string, defaultValue?: T): T | undefined;
}
