import { NetworkClientParam } from '@stacks/network';
import { PublicPersonProfile } from './types';
export declare class Profile {
    _profile: {
        [key: string]: any;
    };
    constructor(profile?: {});
    toJSON(): {
        [key: string]: any;
    };
    toToken(privateKey: string): string;
    static validateSchema(profile: any, strict?: boolean): any;
    static fromToken(token: string, publicKeyOrAddress?: string | null): Profile;
    static makeZoneFile(domainName: string, tokenFileURL: string): string;
}
export declare class Person extends Profile {
    constructor(profile?: PublicPersonProfile);
    static validateSchema(profile: any, strict?: boolean): any;
    static fromToken(token: string, publicKeyOrAddress?: string | null): Person;
    static fromLegacyFormat(legacyProfile: any): Person;
    toJSON(): {
        profile: {
            [key: string]: any;
        };
        name: any;
        givenName: any;
        familyName: any;
        description: any;
        avatarUrl: null;
        verifiedAccounts: any[] | null;
        address: string | null;
        birthDate: string | null;
        connections: any;
        organizations: any;
    };
    profile(): {
        [key: string]: any;
    };
    name(): any;
    givenName(): any;
    familyName(): any;
    description(): any;
    avatarUrl(): null;
    verifiedAccounts(verifications?: any[]): any[] | null;
    address(): string | null;
    birthDate(): string | null;
    connections(): any;
    organizations(): any;
}
export declare function makeProfileZoneFile(origin: string, tokenFileUrl: string): string;
export declare function getTokenFileUrl(zoneFileJson: any): string | null;
export declare function resolveZoneFileToProfile(opts: {
    zoneFile: any;
    publicKeyOrAddress: string;
} & NetworkClientParam): Promise<Record<string, any>>;
