import { Response } from 'express';
import { StreamableFile } from '@nestjs/common';
import { UserPrincipal } from '../common/auth/principal';
import { ActionDto, ComplimentDto, ReportDto } from './dto/social.dto';
import { SocialService } from './social.service';
export declare class SocialController {
    private readonly social;
    constructor(social: SocialService);
    people(principal: UserPrincipal): Promise<{
        data: {
            items: {
                id: string;
                displayName: string;
                bio: string | null;
                occupation: string | null;
                skills: string[];
                city: string | null;
                region: string | null;
                ageBand: string | null;
                isDemo: boolean;
                badgeVerified: boolean;
                hasPhoto: boolean;
                action: "LIKE" | "PASS" | null;
                connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            }[];
        };
        message: string;
    }>;
    matches(principal: UserPrincipal): Promise<{
        data: {
            items: {
                id: string;
                displayName: string;
                bio: string | null;
                occupation: string | null;
                skills: string[];
                city: string | null;
                region: string | null;
                ageBand: string | null;
                isDemo: boolean;
                badgeVerified: boolean;
                hasPhoto: boolean;
                action: "LIKE" | "PASS" | null;
                connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            }[];
        };
        message: string;
    }>;
    compliments(principal: UserPrincipal): Promise<{
        data: {
            items: {
                id: string;
                kind: import(".prisma/client").$Enums.ComplimentKind;
                body: string | null;
                readAt: Date | null;
                createdAt: Date;
                from: {
                    id: string;
                    displayName: string;
                    occupation: string | null;
                    city: string | null;
                    hasPhoto: boolean;
                    isDemo: boolean;
                };
            }[];
        };
        message: string;
    }>;
    readAllCompliments(principal: UserPrincipal): Promise<{
        data: {
            read: boolean;
            count: number;
        };
        message: string;
    }>;
    readCompliment(principal: UserPrincipal, id: string): Promise<{
        data: {
            id: string;
            read: boolean;
        };
        message: string;
    }>;
    visitors(principal: UserPrincipal): Promise<{
        data: {
            items: {
                visitedAt: Date;
                id: string;
                displayName: string;
                bio: string | null;
                occupation: string | null;
                skills: string[];
                city: string | null;
                region: string | null;
                ageBand: string | null;
                isDemo: boolean;
                badgeVerified: boolean;
                hasPhoto: boolean;
                action: "LIKE" | "PASS" | null;
                connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            }[];
        };
        message: string;
    }>;
    extra(principal: UserPrincipal): Promise<{
        data: {
            online: {
                lastSeenAt: Date | null;
                id: string;
                displayName: string;
                bio: string | null;
                occupation: string | null;
                skills: string[];
                city: string | null;
                region: string | null;
                ageBand: string | null;
                isDemo: boolean;
                badgeVerified: boolean;
                hasPhoto: boolean;
                action: "LIKE" | "PASS" | null;
                connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            }[];
            joined: {
                joinedAt: Date;
                id: string;
                displayName: string;
                bio: string | null;
                occupation: string | null;
                skills: string[];
                city: string | null;
                region: string | null;
                ageBand: string | null;
                isDemo: boolean;
                badgeVerified: boolean;
                hasPhoto: boolean;
                action: "LIKE" | "PASS" | null;
                connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            }[];
        };
        message: string;
    }>;
    connections(principal: UserPrincipal): Promise<{
        data: {
            items: {
                id: string;
                status: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
                updatedAt: Date | null;
                member: {
                    id: string;
                    displayName: string;
                    occupation: string | null;
                    city: string | null;
                    region: string | null;
                    hasPhoto: boolean;
                    isDemo: boolean;
                    badgeVerified: boolean;
                    skills: string[];
                };
            }[];
        };
        message: string;
    }>;
    accept(principal: UserPrincipal, id: string): Promise<{
        data: {
            id: string;
            status: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            updatedAt: Date | null;
            member: {
                id: string;
                displayName: string;
                occupation: string | null;
                city: string | null;
                region: string | null;
                hasPhoto: boolean;
                isDemo: boolean;
                badgeVerified: boolean;
                skills: string[];
            };
        };
        message: string;
    }>;
    decline(principal: UserPrincipal, id: string): Promise<{
        data: {
            id: string;
            status: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            updatedAt: Date | null;
            member: {
                id: string;
                displayName: string;
                occupation: string | null;
                city: string | null;
                region: string | null;
                hasPhoto: boolean;
                isDemo: boolean;
                badgeVerified: boolean;
                skills: string[];
            };
        };
        message: string;
    }>;
    radar(principal: UserPrincipal, id: string): Promise<{
        data: {
            company: string | null;
            distanceKm: number | null;
            distanceText: string | null;
            area: string | null;
            precisionMeters: number | null;
            lastSeenAt: Date | null;
            online: boolean;
            overlap: number | null;
            sharedSkills: string[];
            otherSkills: string[];
            communities: {
                id: string;
                name: string;
                city: string | null;
                isDemo: boolean;
                memberCount: number;
            }[];
            event: {
                title: string;
                venue: string | null;
                city: string;
                startsAt: Date;
                isDemo: boolean;
            } | null;
            icebreakers: string[];
            age: number | null;
            experiences: {
                title: string;
                company: string;
                location: string | null;
                startDate: Date;
                endDate: Date | null;
                isCurrent: boolean;
            }[];
            education: {
                institution: string;
                qualification: string;
                field: string | null;
            }[];
            id: string;
            displayName: string;
            bio: string | null;
            occupation: string | null;
            skills: string[];
            city: string | null;
            region: string | null;
            ageBand: string | null;
            isDemo: boolean;
            badgeVerified: boolean;
            hasPhoto: boolean;
            action: "LIKE" | "PASS" | null;
            connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
        };
        message: string;
    }>;
    person(principal: UserPrincipal, id: string): Promise<{
        data: {
            age: number | null;
            experiences: {
                title: string;
                company: string;
                location: string | null;
                startDate: Date;
                endDate: Date | null;
                isCurrent: boolean;
            }[];
            education: {
                institution: string;
                qualification: string;
                field: string | null;
            }[];
            id: string;
            displayName: string;
            bio: string | null;
            occupation: string | null;
            skills: string[];
            city: string | null;
            region: string | null;
            ageBand: string | null;
            isDemo: boolean;
            badgeVerified: boolean;
            hasPhoto: boolean;
            action: "LIKE" | "PASS" | null;
            connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
        };
        message: string;
    }>;
    photo(principal: UserPrincipal, id: string, res: Response): Promise<StreamableFile>;
    wallpaper(principal: UserPrincipal, id: string, res: Response): Promise<StreamableFile>;
    act(principal: UserPrincipal, id: string, dto: ActionDto): Promise<{
        data: {
            matched: boolean;
            age: number | null;
            experiences: {
                title: string;
                company: string;
                location: string | null;
                startDate: Date;
                endDate: Date | null;
                isCurrent: boolean;
            }[];
            education: {
                institution: string;
                qualification: string;
                field: string | null;
            }[];
            id: string;
            displayName: string;
            bio: string | null;
            occupation: string | null;
            skills: string[];
            city: string | null;
            region: string | null;
            ageBand: string | null;
            isDemo: boolean;
            badgeVerified: boolean;
            hasPhoto: boolean;
            action: "LIKE" | "PASS" | null;
            connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
        };
        message: string;
    }>;
    sendCompliment(principal: UserPrincipal, id: string, dto: ComplimentDto): Promise<{
        data: {
            id: string;
            kind: import(".prisma/client").$Enums.ComplimentKind;
            body: string | null;
            createdAt: Date;
        };
        message: string;
    }>;
    connect(principal: UserPrincipal, id: string): Promise<{
        data: {
            id: string;
            status: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            updatedAt: Date | null;
            member: {
                id: string;
                displayName: string;
                occupation: string | null;
                city: string | null;
                region: string | null;
                hasPhoto: boolean;
                isDemo: boolean;
                badgeVerified: boolean;
                skills: string[];
            };
        };
        message: string;
    }>;
    disconnect(principal: UserPrincipal, id: string): Promise<{
        data: {
            id: string;
            status: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
            updatedAt: Date | null;
            member: {
                id: string;
                displayName: string;
                occupation: string | null;
                city: string | null;
                region: string | null;
                hasPhoto: boolean;
                isDemo: boolean;
                badgeVerified: boolean;
                skills: string[];
            };
        };
        message: string;
    }>;
    block(principal: UserPrincipal, id: string): Promise<{
        data: {
            blocked: boolean;
        };
        message: string;
    }>;
    unblock(principal: UserPrincipal, id: string): Promise<{
        data: {
            blocked: boolean;
        };
        message: string;
    }>;
    mute(principal: UserPrincipal, id: string): Promise<{
        data: {
            muted: boolean;
        };
        message: string;
    }>;
    unmute(principal: UserPrincipal, id: string): Promise<{
        data: {
            muted: boolean;
        };
        message: string;
    }>;
    report(principal: UserPrincipal, id: string, dto: ReportDto): Promise<{
        data: {
            id: string;
            status: import(".prisma/client").$Enums.ReportStatus;
        };
        message: string;
    }>;
}
