import { Client } from '@botpress/client';
/**
 * TrackedTags manages tags for bot, user, conversation, and workflow entities.
 * Tags are key-value pairs where values are strings or undefined.
 * Changes are tracked and persisted automatically.
 */
export declare class TrackedTags {
    type: 'bot' | 'user' | 'conversation' | 'workflow';
    id: string;
    client: Client;
    private _tags;
    private _initialTags;
    private _loaded;
    private _saving;
    private _saveAgain;
    private _saveAgainCount;
    private static _savingAll;
    private static _saveAllAgain;
    private static _saveAllCount;
    private constructor();
    static create(props: {
        type: 'bot' | 'user' | 'conversation' | 'workflow';
        id: string;
        client: Client;
        initialTags?: Record<string, string | undefined>;
    }): TrackedTags;
    static saveAllDirty(): Promise<void>;
    static loadAll(): Promise<void>;
    static unloadAll(): void;
    load(force?: boolean): Promise<void>;
    save(): Promise<void>;
    isDirty(): boolean;
    get tags(): Record<string, string | undefined>;
    set tags(value: Record<string, string | undefined>);
    private fetchTags;
    private persistTags;
}
//# sourceMappingURL=tracked-tags.d.ts.map