/** @packageDocumentation
 * @module Workspace
 */
import { GuidString } from "@itwin/core-bentley";
import { WorkspaceContainerId, WorkspaceDbSettingsProps } from "./Workspace";
import { EditableWorkspaceContainer, WorkspaceEditor } from "./WorkspaceEditor";
/** The default resource name used to store settings in a [[WorkspaceDb]].
 * This is the key under which all settings are stored in the SQLite `strings` table.
 * When loading settings at runtime via [[Workspace.loadSettingsDictionary]], the `resourceName` defaults
 * to this value, ensuring the read and write paths always agree on which key to use.
 * @internal
 */
export declare const settingsResourceName = "settingsDictionary";
/** @internal */
export declare namespace SettingsEditor {
    /** The type of workspace container used to store settings. */
    const containerType = "settings";
    /**
     * Create a new [[SettingsEditor]] for creating new versions of [[SettingsDb]]s.
     * @note The caller becomes the owner of the SettingsEditor and is responsible for calling [[SettingsEditor.close]] on it when finished.
     * @note It is illegal to have more than one SettingsEditor active in a single session.
     */
    function constructForITwin(iTwinId: GuidString): Promise<{
        editor: WorkspaceEditor;
        container: EditableWorkspaceContainer;
    }>;
    /**
     * Obtain a [[SettingsEditor]] for the existing settings container associated with an iTwin.
     * @returns The editor and container, or `undefined` if no settings container exists for the iTwin.
     * @note The caller becomes the owner of the SettingsEditor and is responsible for calling [[SettingsEditor.close]] on it when finished.
     * @note It is illegal to have more than one SettingsEditor active in a single session.
     */
    function getForITwin(iTwinId: GuidString): Promise<{
        editor: WorkspaceEditor;
        container: EditableWorkspaceContainer;
    } | undefined>;
}
/**
 * Help locate and obtain access to known containers with type "settings".
 * @internal
 */
export declare namespace SettingsContainers {
    /** Arguments for [[SettingsContainers.queryContainers]]. */
    interface QueryArgs {
        /** The iTwinId whose settings containers should be queried. */
        iTwinId: GuidString;
        /** Optional label filter. */
        label?: string;
    }
    /**
     * Query the [[BlobContainer]] service for the single settings container associated with a given iTwin.
     * @returns The containerId, or `undefined` if no container exists.
     * @throws if more than one settings container is found.
     */
    function getITwinContainerId(iTwinId: GuidString): Promise<WorkspaceContainerId | undefined>;
    /**
     * Look up the settings container for an iTwin and obtain a read-only access token.
     * @returns container props needed by [[IModelHost.getITwinWorkspace]].
     * @note Requires [[IModelHost.authorizationClient]] to be configured.
     * @note Requires [[BlobContainer.service]] to be configured.
     */
    function getITwinSettingsSources(iTwinId: GuidString): Promise<WorkspaceDbSettingsProps[] | undefined>;
}
//# sourceMappingURL=SettingsEditor.d.ts.map