import { SettingsManager, StorageSettingsManager } from "./settings.js";
import type { LanguageManager } from "./i18n.js";
import type { Plugin } from "obsidian";
export interface PluginContext<S extends PluginContext.Settings = PluginContext.Settings, LS extends PluginContext.LocalSettings = PluginContext.LocalSettings> extends Plugin {
    readonly language: LanguageManager;
    readonly localSettings: StorageSettingsManager<LS>;
    readonly settings: SettingsManager<S>;
    readonly displayName: (unlocalized?: boolean) => string;
}
export declare namespace PluginContext {
    type LocalSettings = StorageSettingsManager.Type;
    namespace LocalSettings {
        const fix: typeof StorageSettingsManager.fix;
    }
    interface Settings extends SettingsManager.Type {
        readonly errorNoticeTimeout: number;
        readonly noticeTimeout: number;
        readonly language: string;
    }
    namespace Settings {
        const fix: typeof import("./settings.js").AbstractSettingsManager.fix;
    }
}
//# sourceMappingURL=plugin.d.ts.map