import { AuditService } from '../audit/audit.service';
import { AppConfig } from '../common/config/configuration';
import { PrismaService } from '../common/prisma/prisma.service';
export declare class AdminDiscoveryService {
    private readonly prisma;
    private readonly audit;
    private readonly config;
    constructor(prisma: PrismaService, audit: AuditService, config: AppConfig);
    summary(): Promise<{
        discoverable: number;
        privacyOnLocationOff: number;
        liveCells: number;
        expiredCells: number;
        likesWeek: number;
        passesWeek: number;
        matches: number;
        matchesWeek: number;
        complimentsWeek: number;
        pendingConnections: number;
        openMemberReports: number;
        openComplimentReports: number;
        profileVisitsWeek: number;
        weakCellCount: number;
        minCohort: number;
        topCities: {
            city: string;
            count: number;
        }[];
        map: {
            configured: boolean;
            provider: "mapbox" | "google" | null;
        };
        generatedAt: string;
    }>;
    people(query: {
        q?: string;
        city?: string;
        focus?: string;
        demo?: string;
        limit?: number;
        offset?: number;
    }): Promise<{
        total: number;
        limit: number;
        offset: number;
        facets: {
            cities: {
                city: string;
                count: number;
            }[];
        };
        items: {
            id: string;
            email: string;
            displayName: string;
            occupation: string | null;
            photoFileId: string | null;
            isDemo: boolean;
            status: string;
            onboardingComplete: boolean;
            ageConfirmed18: boolean;
            discoverable: boolean;
            discoveryRadiusKm: number;
            city: string | null;
            region: string | null;
            geohash: string | null;
            discoveryEnabled: boolean;
            precisionMeters: number | null;
            expiresAt: string | null;
            locationUpdatedAt: string | null;
            cellStatus: string;
            hasCoordinates: boolean;
            createdAt: string;
            counts: {
                actionsTaken: number;
                actionsReceived: number;
                complimentsReceived: number;
                matches: number;
                openReports: number;
            };
        }[];
    }>;
    person(id: string): Promise<{
        bio: string | null;
        privacy: {
            discoverable: boolean;
            showCity: boolean;
            showProfession: boolean;
            showSkills: boolean;
            showAgeBand: boolean;
            profileVisibility: string;
        } | null;
        counts: {
            actionsTaken: number;
            actionsReceived: number;
            complimentsReceived: number;
            complimentsSent: number;
            matches: number;
            profileVisits: number;
            openReports: number;
            pendingConnections: number;
        };
        recentActions: {
            id: string;
            kind: import(".prisma/client").$Enums.DiscoveryKind;
            createdAt: string;
            actor: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
            target: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
            direction: string;
        }[];
        recentMatches: {
            id: string;
            createdAt: string;
            other: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
        }[];
        recentCompliments: {
            id: string;
            kind: import(".prisma/client").$Enums.ComplimentKind;
            body: string | null;
            createdAt: string;
            direction: string;
            actor: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
            target: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
        }[];
        recentVisits: {
            id: string;
            visitedAt: string;
            viewer: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
        }[];
        openReports: {
            id: string;
            reason: import(".prisma/client").$Enums.ReportReason;
            details: string | null;
            createdAt: string;
            kind: string;
        }[];
        id: string;
        email: string;
        displayName: string;
        occupation: string | null;
        photoFileId: string | null;
        isDemo: boolean;
        status: string;
        onboardingComplete: boolean;
        ageConfirmed18: boolean;
        discoverable: boolean;
        discoveryRadiusKm: number;
        city: string | null;
        region: string | null;
        geohash: string | null;
        discoveryEnabled: boolean;
        precisionMeters: number | null;
        expiresAt: string | null;
        locationUpdatedAt: string | null;
        cellStatus: string;
        hasCoordinates: boolean;
        createdAt: string;
    }>;
    cells(query: {
        city?: string;
        limit?: number;
    }): Promise<{
        total: number;
        minCohort: number;
        weakCount: number;
        items: {
            geohash: string;
            city: string;
            count: number;
            precisionMeters: number;
            updatedAt: string | null;
            weak: boolean;
            minCohort: number;
        }[];
    }>;
    activity(query: {
        kind?: string;
        limit?: number;
        offset?: number;
    }): Promise<{
        total: number;
        limit: number;
        offset: number;
        items: {
            id: string;
            type: "match";
            createdAt: string;
            label: string;
            actors: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            }[];
            detail: string | null;
        }[];
    } | {
        total: number;
        limit: number;
        offset: number;
        items: {
            id: string;
            type: "compliment";
            createdAt: string;
            label: string;
            actors: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            }[];
            detail: string | null;
        }[];
    } | {
        total: number;
        limit: number;
        offset: number;
        items: {
            id: string;
            type: "pass" | "like";
            createdAt: string;
            label: string;
            actors: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            }[];
            detail: string | null;
        }[];
    }>;
    disableDiscovery(adminId: string, userId: string): Promise<{
        bio: string | null;
        privacy: {
            discoverable: boolean;
            showCity: boolean;
            showProfession: boolean;
            showSkills: boolean;
            showAgeBand: boolean;
            profileVisibility: string;
        } | null;
        counts: {
            actionsTaken: number;
            actionsReceived: number;
            complimentsReceived: number;
            complimentsSent: number;
            matches: number;
            profileVisits: number;
            openReports: number;
            pendingConnections: number;
        };
        recentActions: {
            id: string;
            kind: import(".prisma/client").$Enums.DiscoveryKind;
            createdAt: string;
            actor: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
            target: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
            direction: string;
        }[];
        recentMatches: {
            id: string;
            createdAt: string;
            other: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
        }[];
        recentCompliments: {
            id: string;
            kind: import(".prisma/client").$Enums.ComplimentKind;
            body: string | null;
            createdAt: string;
            direction: string;
            actor: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
            target: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
        }[];
        recentVisits: {
            id: string;
            visitedAt: string;
            viewer: {
                id: string;
                email: string;
                displayName: string;
                isDemo: boolean;
            };
        }[];
        openReports: {
            id: string;
            reason: import(".prisma/client").$Enums.ReportReason;
            details: string | null;
            createdAt: string;
            kind: string;
        }[];
        id: string;
        email: string;
        displayName: string;
        occupation: string | null;
        photoFileId: string | null;
        isDemo: boolean;
        status: string;
        onboardingComplete: boolean;
        ageConfirmed18: boolean;
        discoverable: boolean;
        discoveryRadiusKm: number;
        city: string | null;
        region: string | null;
        geohash: string | null;
        discoveryEnabled: boolean;
        precisionMeters: number | null;
        expiresAt: string | null;
        locationUpdatedAt: string | null;
        cellStatus: string;
        hasCoordinates: boolean;
        createdAt: string;
    }>;
    private mapPerson;
    private briefUser;
}
