import { MantarayNode } from "../../handlers/mantaray";
import type { BatchId, BeeClient, Reference } from "../../clients";
import type { ImageType } from "../../schemas/image";
import type { ProfileDetails, ProfileDetailsRaw, ProfilePreview, ProfilePreviewRaw, SerializedProfileBuilder } from "../../schemas/profile";
interface ProfileBuilderRequestOptions {
    beeClient: BeeClient;
    batchId?: BatchId;
    signal?: AbortSignal;
}
export declare const PROFILE_PREVIEW_META_PATH = "preview";
export declare const PROFILE_DETAILS_META_PATH = "details";
export declare class ProfileBuilder {
    reference: Reference;
    previewMeta: ProfilePreviewRaw;
    detailsMeta: ProfileDetailsRaw;
    node: MantarayNode;
    private queue;
    constructor();
    static Immerable: typeof ProfileBuilder;
    static unimmerable(instance: ProfileBuilder): ProfileBuilder;
    initialize(reference: Reference, previewMeta: ProfilePreview, detailsMeta?: ProfileDetails): void;
    loadNode(opts: ProfileBuilderRequestOptions): Promise<void>;
    saveNode(opts: ProfileBuilderRequestOptions): Promise<Reference>;
    updateName(name: string): void;
    updateBatchId(batchId: BatchId): void;
    updateDescription(description: string): void;
    updateBirthday(birthday: string): void;
    updateWebsite(website: string): void;
    updateLocation(location: string): void;
    addAvatarSource(data: Uint8Array, width: number, type: ImageType): void;
    addCoverSource(data: Uint8Array, width: number, type: ImageType): void;
    removeAvatar(): void;
    removeCover(): void;
    addPlaylist(rootManifest: Reference): void;
    removePlaylist(rootManifest: Reference): void;
    serialize(): SerializedProfileBuilder;
    deserialize(value: unknown): void;
    private enqueueData;
    private addImageSource;
    private getImagePath;
    private getAvatarPath;
    private getCoverPath;
    private updateNode;
}
export {};
//# sourceMappingURL=builder.d.ts.map