import { Client } from '@botpress/client';
type ProfileFields = {
    name: string | undefined;
    pictureUrl: string | undefined;
    properties: Record<string, string | undefined> | undefined;
    attributes: Record<string, string | undefined> | undefined;
};
/**
 * TrackedUserProfile manages writable profile fields on a user entity
 * (`name`, `pictureUrl`, `properties`, `attributes`).
 *
 * Mutations are staged in-memory and flushed to the Botpress API at the end
 * of the request via `saveAllDirty()`, mirroring the pattern used by
 * `TrackedState` and `TrackedTags`.
 */
export declare class TrackedUserProfile {
    id: string;
    client: Client;
    private _profile;
    private _initialProfile;
    private _loaded;
    private _saving;
    private _saveAgain;
    private _saveAgainCount;
    private static _saveChain;
    private constructor();
    static create(props: {
        id: string;
        client: Client;
        initialProfile?: Partial<ProfileFields>;
    }): TrackedUserProfile;
    static loadAll(): Promise<void>;
    static saveAllDirty(): Promise<void>;
    private static _saveAllDirtyOnce;
    static unloadAll(): void;
    load(force?: boolean): Promise<void>;
    save(): Promise<void>;
    isDirty(): boolean;
    get name(): string | undefined;
    set name(value: string | undefined);
    get pictureUrl(): string | undefined;
    set pictureUrl(value: string | undefined);
    get properties(): Record<string, string | undefined>;
    set properties(value: Record<string, string | undefined>);
    get attributes(): Record<string, string | undefined>;
    set attributes(value: Record<string, string | undefined>);
    private _buildUpdatePayload;
}
export {};
//# sourceMappingURL=tracked-user-profile.d.ts.map