/** @packageDocumentation
 * @module Workspace
 */
import { BeEvent } from "@itwin/core-bentley";
import { LocalDirName, LocalFileName } from "@itwin/core-common";
import { Setting, SettingName, Settings, SettingsContainer, SettingsDictionary, SettingsDictionaryProps, SettingsDictionarySource, SettingsPriority } from "../../workspace/Settings";
import { _implementationProhibited } from "../Symbols";
/**
 * Internal implementation of Settings interface.
 * @internal
 */
export declare class SettingsImpl implements Settings {
    readonly [_implementationProhibited]: undefined;
    dictionaries: SettingsDictionary[];
    protected verifyPriority(_priority: SettingsPriority): void;
    close(): void;
    readonly onSettingsChanged: BeEvent<() => void>;
    addFile(fileName: LocalFileName, priority: SettingsPriority): void;
    addDirectory(dirName: LocalDirName, priority: SettingsPriority): void;
    addJson(props: SettingsDictionaryProps, settingsJson: string): void;
    addDictionary(props: SettingsDictionaryProps, settings: SettingsContainer): void;
    getDictionary(source: SettingsDictionarySource): SettingsDictionary | undefined;
    dropDictionary(source: SettingsDictionarySource, raiseEvent?: boolean): boolean;
    getSettingEntries<T extends Setting>(settingName: SettingName): Iterable<{
        value: T;
        dictionary: SettingsDictionary;
    }>;
    getSettingValues<T extends Setting>(settingName: SettingName): Iterable<T>;
    getSetting<T extends Setting>(settingName: SettingName, defaultValue?: T): T | undefined;
    private getResult;
    getString(name: SettingName, defaultValue: string): string;
    getString(name: SettingName): string | undefined;
    getBoolean(name: SettingName, defaultValue: boolean): boolean;
    getBoolean(name: SettingName): boolean | undefined;
    getNumber(name: SettingName, defaultValue: number): number;
    getNumber(name: SettingName): number | undefined;
    getObject<T extends object>(name: SettingName, defaultValue: T): T;
    getObject<T extends object>(name: SettingName): T | undefined;
    getArray<T extends Setting>(name: SettingName, defaultValue: T[]): T[];
    getArray<T extends Setting>(name: SettingName): T[] | undefined;
    private getCombinedArray;
}
//# sourceMappingURL=SettingsImpl.d.ts.map