import { Response } from 'express';
import { AdminAuthService } from '../services/admin-auth.service';
import { AdminSessionService } from '../services/admin-session.service';
import { AdminConsoleConfigService } from '../services/admin-console-config.service';
import { AdminLoginDto } from '../dto/login.dto';
import { AdminResetPasswordDto } from '../dto/reset-password.dto';
import { AdminSignupDto } from '../dto/signup.dto';
import { NestAuthAdminUser } from '../entities/admin-user.entity';
import { CreateDashboardAdminDto, UpdateDashboardAdminDto } from '../dto/create-dashboard-admin.dto';
import { AdminUserService } from '../services/admin-user.service';
import { UserService } from '../../user/services/user.service';
import { RoleService } from '../../role/services/role.service';
import { TenantService } from '../../tenant/services/tenant.service';
import { Repository } from 'typeorm';
import { NestAuthUser } from '../../user/entities/user.entity';
export declare class AdminAuthController {
    private readonly adminAuth;
    private readonly sessions;
    private readonly config;
    private readonly adminUsers;
    private readonly userService;
    private readonly roleService;
    private readonly tenantService;
    private readonly userRepository;
    constructor(adminAuth: AdminAuthService, sessions: AdminSessionService, config: AdminConsoleConfigService, adminUsers: AdminUserService, userService: UserService, roleService: RoleService, tenantService: TenantService, userRepository: Repository<NestAuthUser>);
    private getCookieOptions;
    signup(dto: AdminSignupDto): Promise<{
        message: string;
        admin: {
            id: string;
            email: string;
            name: string;
            metadata: Record<string, any>;
            lastLoginAt: Date;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    login(dto: AdminLoginDto, res: Response): Promise<{
        message: string;
        admin: {
            id: string;
            email: string;
            name: string;
            metadata: Record<string, any>;
            lastLoginAt: Date;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    logout(admin: NestAuthAdminUser, res: Response): Promise<{
        message: string;
    }>;
    me(admin: NestAuthAdminUser): Promise<{
        id: string;
        email: string;
        name: string;
        metadata: Record<string, any>;
        lastLoginAt: Date;
        createdAt: Date;
        updatedAt: Date;
    }>;
    publicConfig(): Promise<{
        allowAdminManagement: boolean;
    }>;
    getDashboardStats(): Promise<{
        stats: {
            totalUsers: number;
            activeUsers: number;
            verifiedUsers: number;
            totalRoles: number;
            totalTenants: number;
            recentSignups: number;
        };
        activityData: {
            name: string;
            users: number;
        }[];
    }>;
    getSetupStatus(): Promise<{
        needsSetup: boolean;
        stats: {
            usersCount: number;
            rolesCount: number;
        };
        setupSteps: {
            id: string;
            title: string;
            description: string;
            completed: boolean;
        }[];
    }>;
    listAdmins(): Promise<{
        data: {
            id: string;
            email: string;
            name: string;
            metadata: Record<string, any>;
            lastLoginAt: Date;
            createdAt: Date;
            updatedAt: Date;
        }[];
    }>;
    createAdmin(dto: CreateDashboardAdminDto): Promise<{
        admin: {
            id: string;
            email: string;
            name: string;
            metadata: Record<string, any>;
            lastLoginAt: Date;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    updateAdmin(id: string, dto: UpdateDashboardAdminDto): Promise<{
        admin: {
            id: string;
            email: string;
            name: string;
            metadata: Record<string, any>;
            lastLoginAt: Date;
            createdAt: Date;
            updatedAt: Date;
        };
    }>;
    deleteAdmin(id: string): Promise<{
        message: string;
    }>;
    resetPassword(dto: AdminResetPasswordDto): Promise<{
        message: string;
    }>;
    private toSafeAdmin;
}
//# sourceMappingURL=admin-auth.controller.d.ts.map