import { Gender, UserLocation } from '@prisma/client';
export interface OwnerRecord {
    id: string;
    email: string;
    status: string;
    emailVerifiedAt: Date | null;
    badgeVerifiedAt: Date | null;
    isDemo: boolean;
    createdAt: Date;
    profile: {
        firstName: string;
        lastName: string;
        displayName: string;
        bio: string | null;
        gender: Gender | null;
        dateOfBirth: Date | null;
        ageConfirmed18: boolean;
        occupation: string | null;
        employmentStatus: string | null;
        yearsExperience: number | null;
        industries: unknown;
        desiredRoles: unknown;
        programmingLanguages: unknown;
        onboardingStep: string;
        onboardingComplete: boolean;
        photoFileId: string | null;
    } | null;
    preferences: Record<string, unknown> | null;
    skills: {
        level: string | null;
        skill: {
            name: string;
        };
    }[];
    experiences: unknown[];
    education: unknown[];
    certifications: unknown[];
    languages: unknown[];
    location: UserLocation | null;
    privacy: Record<string, unknown> | null;
    consents?: {
        type: string;
        version: string;
        granted: boolean;
        createdAt: Date;
    }[];
}
export declare function profileCompletion(record: OwnerRecord): number;
export declare function toOwnerView(record: OwnerRecord): {
    id: string;
    email: string;
    status: string;
    emailVerified: boolean;
    badgeVerified: boolean;
    isDemo: boolean;
    createdAt: Date;
    profileCompletion: number;
    socialEligible: boolean;
    profile: {
        firstName: string;
        lastName: string;
        displayName: string;
        bio: string | null;
        gender: import(".prisma/client").$Enums.Gender | null;
        dateOfBirth: Date | null;
        ageConfirmed18: boolean;
        occupation: string | null;
        employmentStatus: string | null;
        yearsExperience: number | null;
        industries: {};
        desiredRoles: {};
        programmingLanguages: {};
        onboardingStep: string;
        onboardingComplete: boolean;
        hasPhoto: boolean;
    } | null;
    preferences: Record<string, unknown> | null;
    skills: {
        name: string;
        level: string | null;
    }[];
    experiences: unknown[];
    education: unknown[];
    certifications: unknown[];
    languages: unknown[];
    location: {
        city: string;
        region: string | null;
        postcode: string | null;
        country: string;
        discoveryEnabled: boolean;
        precisionMeters: number;
        expiresAt: Date | null;
        approximate: boolean;
    } | null;
    privacy: Record<string, unknown> | null;
};
export declare function toExportView(record: OwnerRecord): {
    consents: {
        type: string;
        version: string;
        granted: boolean;
        createdAt: Date;
    }[];
    discoveryCell: {
        note: string;
        geohash: string;
        latitude: number | null;
        longitude: number | null;
    } | null;
    id: string;
    email: string;
    status: string;
    emailVerified: boolean;
    badgeVerified: boolean;
    isDemo: boolean;
    createdAt: Date;
    profileCompletion: number;
    socialEligible: boolean;
    profile: {
        firstName: string;
        lastName: string;
        displayName: string;
        bio: string | null;
        gender: import(".prisma/client").$Enums.Gender | null;
        dateOfBirth: Date | null;
        ageConfirmed18: boolean;
        occupation: string | null;
        employmentStatus: string | null;
        yearsExperience: number | null;
        industries: {};
        desiredRoles: {};
        programmingLanguages: {};
        onboardingStep: string;
        onboardingComplete: boolean;
        hasPhoto: boolean;
    } | null;
    preferences: Record<string, unknown> | null;
    skills: {
        name: string;
        level: string | null;
    }[];
    experiences: unknown[];
    education: unknown[];
    certifications: unknown[];
    languages: unknown[];
    location: {
        city: string;
        region: string | null;
        postcode: string | null;
        country: string;
        discoveryEnabled: boolean;
        precisionMeters: number;
        expiresAt: Date | null;
        approximate: boolean;
    } | null;
    privacy: Record<string, unknown> | null;
};
