import type { Session } from "../instance/index.js"; import { SignalService } from "@session.js/types/signal-bindings"; export declare const PROFILE_IV_LENGTH = 12; export declare const PROFILE_KEY_LENGTH = 32; export declare const PROFILE_TAG_LENGTH = 128; export type Profile = { /** Name, displayed instead of your Session ID. Acts like nickname. All unicode characters are accepted except for `ᅭ` (0xffd2) which is reserved by Session for mentions. Max length: 64 characters */ displayName: string; /** Image, displayed near display name in Session clients. Acts like profile picture. */ avatar?: { /** URL to avatar, uploaded to Session file server */ url: string; /** 32 bytes key used for avatar encryption */ key: Uint8Array; }; }; export type SignalILokiProfile = { lokiProfile: SignalService.DataMessage.ILokiProfile | undefined; profileKey: Uint8Array | undefined; }; export declare function serializeProfile(profile: Profile): SignalILokiProfile; export declare function downloadAvatar(this: Session, avatar: NonNullable): Promise; export declare function deserializeProfile(signalILokiProfile: SignalILokiProfile): Profile; export declare function uploadAvatar(this: Session, avatar: Uint8Array): Promise<{ profileKey: Uint8Array; avatarPointer: string; }>;