import { AdminPrincipal } from '../common/auth/principal';
import { AdminDiscoveryService } from './admin-discovery.service';
declare class ListQueryDto {
    q?: string;
    city?: string;
    focus?: string;
    demo?: string;
    kind?: string;
    limit?: string;
    offset?: string;
}
export declare class AdminDiscoveryController {
    private readonly discovery;
    constructor(discovery: AdminDiscoveryService);
    summary(): Promise<{
        data: {
            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;
        };
        message: string;
    }>;
    people(query: ListQueryDto): Promise<{
        data: {
            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;
                };
            }[];
        };
        message: string;
    }>;
    person(id: string): Promise<{
        data: {
            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;
        };
        message: string;
    }>;
    cells(query: ListQueryDto): Promise<{
        data: {
            total: number;
            minCohort: number;
            weakCount: number;
            items: {
                geohash: string;
                city: string;
                count: number;
                precisionMeters: number;
                updatedAt: string | null;
                weak: boolean;
                minCohort: number;
            }[];
        };
        message: string;
    }>;
    activity(query: ListQueryDto): Promise<{
        data: {
            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;
            }[];
        };
        message: string;
    }>;
    disable(principal: AdminPrincipal, id: string): Promise<{
        data: {
            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;
        };
        message: string;
    }>;
}
export {};
