import { User } from '../../entities/user.entity';
import { AdminService } from './admin.service';
import { SlackService } from '../notifications/slack.service';
export declare class AdminController {
    private adminService;
    private slackService;
    private readonly logger;
    constructor(adminService: AdminService, slackService: SlackService);
    getDashboardStats(): Promise<{
        totalUsers: number;
        activeUsers: number;
        inactiveUsers: number;
        totalApps: number;
        totalBuilds: number;
        activeUsersLast30Days: number;
        platformDistribution: {
            android: number;
            ios: number;
        };
        usersByMonth: {
            month: any;
            count: number;
        }[];
        buildsByMonth: {
            month: any;
            count: number;
        }[];
    }>;
    getAllUsers(page?: string, limit?: string, search?: string): Promise<{
        users: {
            id: string;
            name: string;
            email: string;
            profilePhoto: string | null;
            role: string;
            isActive: boolean;
            createdAt: Date;
            lastActiveAt: Date | null;
            totalApps: number;
            totalBuilds: number;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getUserDetails(userId: string): Promise<{
        id: string;
        name: string;
        email: string;
        profilePhoto: string | null;
        role: string;
        isActive: boolean;
        createdAt: Date;
        lastActiveAt: Date | null;
        apps: {
            id: string;
            appName: string;
            platform: "android" | "ios";
            bundleOrPackage: string;
            iconFileId: string | null;
            builds: {
                id: string;
                version: string;
                buildNumber: string;
                size: number;
                createdAt: Date;
                iconFileId: string | null;
                minOs: string | null;
                shortCode: string | null;
                isPasswordProtected: boolean;
                passwordText: string | null;
            }[];
        }[];
        stats: {
            totalApps: number;
            totalBuilds: number;
            totalSize: number;
        };
        userSettings: {
            buildLinkExpiryDays: number | null;
            aiReleaseNotesEnabled: boolean | null;
            maxBuildSizeMb: number | null;
            cicdEnabled: boolean | null;
            slackEnabled: boolean | null;
        };
        slackStatus: {
            connected: boolean;
            channelId: string | null;
            workspaceId: string | null;
        };
    }>;
    updateUserStatus(userId: string, isActive: boolean): Promise<{
        success: boolean;
        user: User;
    }>;
    updateUserRole(userId: string, role: string): Promise<{
        success: boolean;
        user: User;
    }>;
    deleteUser(userId: string): Promise<{
        success: boolean;
        message: string;
    }>;
    getRecentBuilds(limit?: string): Promise<{
        id: string;
        version: string;
        buildNumber: string;
        platform: "android" | "ios";
        appName: string;
        iconFileId: string | null;
        createdAt: Date;
        size: number;
        userName: string;
        userEmail: string;
        shortCode: string | null;
        isPasswordProtected: boolean;
        passwordText: string | null;
    }[]>;
    getRecentUsers(limit?: string): Promise<{
        id: string;
        name: string;
        email: string;
        profilePhoto: string | null;
        role: string;
        isActive: boolean;
        createdAt: Date;
        totalApps: number;
    }[]>;
    getAllAppsWithIcons(limit?: string): Promise<{
        id: string;
        appName: string;
        platform: "android" | "ios";
        iconFileId: string;
        userName: string;
        totalBuilds: number;
        createdAt: Date;
    }[]>;
    getAllBuilds(page?: string, limit?: string, search?: string): Promise<{
        builds: {
            id: string;
            version: string;
            buildNumber: string;
            platform: "android" | "ios";
            appName: string;
            iconFileId: string | null;
            createdAt: Date;
            size: number;
            userName: string;
            userEmail: string;
            userId: string;
            shortCode: string | null;
            isPasswordProtected: boolean;
            passwordText: string | null;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getActiveUsers(page?: string, limit?: string): Promise<{
        users: {
            id: string;
            name: string;
            email: string;
            profilePhoto: string | null;
            role: string;
            isActive: boolean;
            createdAt: Date;
            lastActiveAt: Date | null;
            totalApps: number;
            totalBuilds: number;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getUniqueApps(page?: string, limit?: string, search?: string): Promise<{
        apps: {
            appName: string;
            platforms: string[];
            uploaders: {
                id: string;
                name: string;
                email: string;
                profilePhoto: string | null;
            }[];
            totalBuilds: number;
            iconFileId: string | null;
            latestCreatedAt: Date;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    updateUserSettings(userId: string, body: {
        buildLinkExpiryDays?: number | null;
        aiReleaseNotesEnabled?: boolean | null;
        maxBuildSizeMb?: number | null;
        cicdEnabled?: boolean | null;
        slackEnabled?: boolean | null;
    }): Promise<{
        success: boolean;
        userSettings: {
            buildLinkExpiryDays: number | null;
            aiReleaseNotesEnabled: boolean | null;
            maxBuildSizeMb: number | null;
            cicdEnabled: boolean | null;
            slackEnabled: boolean | null;
        };
    }>;
    getSettings(): Promise<import("../../entities/platform-settings.entity").PlatformSettings>;
    updateSettings(body: {
        buildLinkExpiryDays?: number;
        aiReleaseNotesEnabled?: boolean;
        maxBuildSizeMb?: number;
        cicdEnabled?: boolean;
        slackEnabled?: boolean;
    }): Promise<import("../../entities/platform-settings.entity").PlatformSettings>;
    testSlack(user: User): Promise<{
        success: boolean;
        message: string;
    }>;
}
