import { DeleteDTO } from '../dto/delete.dto';
import { CreateWithEmailAndPasswordDTO } from './dto/create-with-email-and-password.dto';
import { ResetPasswordDTO } from './dto/reset-password.dto';
import { UpdateDTO } from './dto/update.dto';
import { UserService } from './user.service';
export declare class UserController {
    private readonly userService;
    constructor(userService: UserService);
    list(paginationParams: any): Promise<{
        paginate: {
            total: any;
            lastPage: number;
            page: number;
            pageSize: number;
            data: any;
        };
        stats: {
            total: number;
            newLast7Days: number;
            blocked: number;
        };
    }>;
    get(userId: number, locale: string): Promise<{
        user_identifier: {
            type: import("@prisma/client").$Enums.user_identifier_type_e66d505520_enum;
            id: number;
            value: string;
            enabled: boolean;
            user_id: number;
            created_at: Date;
            updated_at: Date;
            verified_at: Date | null;
        }[];
        role_user: ({
            role: {
                id: number;
                created_at: Date;
                updated_at: Date;
                slug: string;
            };
        } & {
            id: number;
            user_id: number;
            created_at: Date;
            updated_at: Date;
            role_id: number;
        })[];
        user_account: {
            id: number;
            email: string | null;
            provider: import("@prisma/client").$Enums.user_account_provider_52222e2ecb_enum;
            user_id: number;
            created_at: Date;
            updated_at: Date;
            provider_user_id: string;
            scopes: string | null;
            refresh_token: import("@prisma/client/runtime/library").Bytes | null;
            token_expires_at: Date | null;
        }[];
        user_activity: {
            id: number;
            action: string;
            user_id: number;
            created_at: Date;
            updated_at: Date;
        }[];
        user_credential: {
            type: import("@prisma/client").$Enums.user_credential_type_4466d7f008_enum;
            id: number;
            hash: string;
            user_id: number;
            created_at: Date;
            updated_at: Date;
            expires_at: Date | null;
            revoked_at: Date | null;
            requires_reset: boolean;
        }[];
        user_session: {
            id: number;
            hash: string;
            user_id: number;
            user_agent: string;
            created_at: Date;
            updated_at: Date;
            ip_address: string;
            expires_at: Date;
            revoked_at: Date | null;
        }[];
    } & {
        name: string;
        id: number;
        created_at: Date;
        updated_at: Date;
        photo_id: number | null;
        suspended_until: Date | null;
        last_login_at: Date | null;
        suspended_reason: string | null;
        deactivated_at: Date | null;
    }>;
    openPublicAvatar(fileId: number, locale: string, res: any): Promise<void>;
    create(data: CreateWithEmailAndPasswordDTO, locale: string): Promise<{
        user: {
            name: string;
            id: number;
            created_at: Date;
            updated_at: Date;
            photo_id: number | null;
            suspended_until: Date | null;
            last_login_at: Date | null;
            suspended_reason: string | null;
            deactivated_at: Date | null;
        };
        challenge: {
            challengeId: number;
        };
    }>;
    update(userId: number, data: UpdateDTO, locale: string): Promise<{
        name: string;
        id: number;
        created_at: Date;
        updated_at: Date;
        photo_id: number | null;
        suspended_until: Date | null;
        last_login_at: Date | null;
        suspended_reason: string | null;
        deactivated_at: Date | null;
    }>;
    resetPassword(userId: number, data: ResetPasswordDTO, locale: string): Promise<{
        password: string;
        requiresReset: boolean;
    }>;
    changeAvatar(locale: string, userId: number, avatar: MulterFile): Promise<{
        id: number;
        path: string;
    }>;
    verifyIdentifier(locale: string, userId: number, identifierId: number): Promise<{
        type: import("@prisma/client").$Enums.user_identifier_type_e66d505520_enum;
        id: number;
        value: string;
        enabled: boolean;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        verified_at: Date | null;
    }>;
    delete(data: DeleteDTO, locale: string): Promise<import("@prisma/client").Prisma.BatchPayload>;
    getUserRoles(userId: number): Promise<{
        id: any;
        slug: any;
        name: any;
        description: any;
        isAssigned: boolean;
    }[]>;
    getUserMenus(userId: number, locale: string): Promise<{
        id: number;
        menuId: any;
        url: any;
        icon: any;
        order: any;
        name: any;
        roles: any;
    }[]>;
    getUserRoutes(userId: number, locale: string): Promise<{
        id: number;
        url: string;
        method: import("@prisma/client").$Enums.route_method_3b4d117a29_enum;
        roles: any;
    }[]>;
    assignRoleToUser(userId: number, roleId: number, locale: string): Promise<{
        id: number;
        user_id: number;
        created_at: Date;
        updated_at: Date;
        role_id: number;
    }>;
    removeRoleFromUser(userId: number, roleId: number, locale: string): Promise<{
        count: number;
    }>;
}
//# sourceMappingURL=user.controller.d.ts.map