import type { Entity, EntityProperties } from "./Entity.js";
import type { PropertyDefs } from "./support/Serializable.js";
import { SerializableBase } from "./support/Serializable.js";
import { ObservableMap } from "./utilities/ObservableMap.js";
/**
 * Properties that can be passed into the constructor for
 * {@link LanguageResources}.
 */
export interface LanguageResourcesProperties extends EntityProperties {
    /**
     * The locale of the strings.
     */
    locale?: string;
    /**
     * The set of localized strings, indexed by unique key.
     */
    values?: Record<string, string>;
}
/**
 * A localized set of string resources.
 */
export declare class LanguageResources extends SerializableBase<LanguageResourcesProperties> implements Entity {
    /**
     * @inheritDoc
     */
    get id(): string;
    /**
     * The locale of the strings.
     */
    get locale(): string;
    /**
     * The set of localized strings, indexed by unique key.
     */
    get values(): ObservableMap<string, string>;
    /**
     * @inheritDoc
     */
    get itemType(): string;
    /**
     * The unique ID for this entity. Once set, this should never change.
     */
    protected _id: string;
    private readonly _locale;
    private readonly _values;
    /**
     * Creates a new LanguageResources instance with the given properties.
     *
     * @param properties The properties to set.
     */
    constructor(properties?: LanguageResourcesProperties);
    /**
     * @inheritDoc
     */
    toItemUri(): string;
    protected _getSerializableProperties(): PropertyDefs<LanguageResourcesProperties>;
}
