import { UserRole, UserStatus } from '../common/constants/enums';
import type { JwtUserPayload } from '../auth/jwt.types';
import { UsersService } from './users.service';
import { AdminCreateUserDto, AdminUpdateUserDto, UpdateSelfDto } from './dto/user.dto';
export declare class UsersController {
    private readonly users;
    constructor(users: UsersService);
    me(actor: JwtUserPayload): Promise<{
        id: string;
        uid: string;
        email: string;
        name: string | null;
        fullName: string | null;
        employeeCode: string;
        role: string;
        mobile: string | null;
        mobileNumber: string | null;
        sitingLocation: string | null;
        sittingLocation: string | null;
        reportingManagerId: string | null;
        reportingManagerName: string | null;
        reportingManager: import("./user-api.mapper").ManagerSummary | undefined;
        deviceId: string | null;
        profileImage: string | null;
        status: string | null;
        presence: string | null;
        createdAt: Date | null;
        updatedAt: Date | null;
    }>;
    updateMe(actor: JwtUserPayload, dto: UpdateSelfDto): Promise<{
        id: string;
        uid: string;
        email: string;
        fullName: string;
        name?: string;
        employeeCode: string;
        mobileNumber?: string;
        sittingLocation?: string;
        reportingManagerId?: string;
        role: UserRole;
        deviceId?: string;
        profileImage?: string;
        status: UserStatus;
        fcmToken?: string;
        isRooted: boolean;
        presence: import("../common/constants/enums").EmployeePresence;
        lastSeenAt?: Date;
        _id: import("mongoose").Types.ObjectId;
        __v: number;
    }>;
    reportingManagers(): Promise<{
        id: string;
        uid: string;
        email: string;
        name: string | null;
        fullName: string | null;
        employeeCode: string;
        role: string;
        mobile: string | null;
        mobileNumber: string | null;
        sitingLocation: string | null;
        sittingLocation: string | null;
        reportingManagerId: string | null;
        reportingManagerName: string | null;
        reportingManager: import("./user-api.mapper").ManagerSummary | undefined;
        deviceId: string | null;
        profileImage: string | null;
        status: string | null;
        presence: string | null;
        createdAt: Date | null;
        updatedAt: Date | null;
    }[]>;
    list(role?: string, status?: UserStatus, search?: string, reportingManagerId?: string, cursor?: string, limit?: string, paginated?: string): Promise<{
        id: string;
        uid: string;
        email: string;
        name: string | null;
        fullName: string | null;
        employeeCode: string;
        role: string;
        mobile: string | null;
        mobileNumber: string | null;
        sitingLocation: string | null;
        sittingLocation: string | null;
        reportingManagerId: string | null;
        reportingManagerName: string | null;
        reportingManager: import("./user-api.mapper").ManagerSummary | undefined;
        deviceId: string | null;
        profileImage: string | null;
        status: string | null;
        presence: string | null;
        createdAt: Date | null;
        updatedAt: Date | null;
    }[] | {
        items: {
            id: string;
            uid: string;
            email: string;
            name: string | null;
            fullName: string | null;
            employeeCode: string;
            role: string;
            mobile: string | null;
            mobileNumber: string | null;
            sitingLocation: string | null;
            sittingLocation: string | null;
            reportingManagerId: string | null;
            reportingManagerName: string | null;
            reportingManager: import("./user-api.mapper").ManagerSummary | undefined;
            deviceId: string | null;
            profileImage: string | null;
            status: string | null;
            presence: string | null;
            createdAt: Date | null;
            updatedAt: Date | null;
        }[];
        nextCursor: string | null;
    }>;
    create(dto: AdminCreateUserDto): Promise<{
        id: string;
        uid: string;
        email: string;
        name: string | null;
        fullName: string | null;
        employeeCode: string;
        role: string;
        mobile: string | null;
        mobileNumber: string | null;
        sitingLocation: string | null;
        sittingLocation: string | null;
        reportingManagerId: string | null;
        reportingManagerName: string | null;
        reportingManager: import("./user-api.mapper").ManagerSummary | undefined;
        deviceId: string | null;
        profileImage: string | null;
        status: string | null;
        presence: string | null;
        createdAt: Date | null;
        updatedAt: Date | null;
    }>;
    update(uid: string, dto: AdminUpdateUserDto): Promise<{
        id: string;
        uid: string;
        email: string;
        name: string | null;
        fullName: string | null;
        employeeCode: string;
        role: string;
        mobile: string | null;
        mobileNumber: string | null;
        sitingLocation: string | null;
        sittingLocation: string | null;
        reportingManagerId: string | null;
        reportingManagerName: string | null;
        reportingManager: import("./user-api.mapper").ManagerSummary | undefined;
        deviceId: string | null;
        profileImage: string | null;
        status: string | null;
        presence: string | null;
        createdAt: Date | null;
        updatedAt: Date | null;
    }>;
    deactivate(uid: string): Promise<{
        id: string;
        uid: string;
        email: string;
        fullName: string;
        name?: string;
        employeeCode: string;
        mobileNumber?: string;
        sittingLocation?: string;
        reportingManagerId?: string;
        role: UserRole;
        deviceId?: string;
        profileImage?: string;
        status: UserStatus;
        fcmToken?: string;
        isRooted: boolean;
        presence: import("../common/constants/enums").EmployeePresence;
        lastSeenAt?: Date;
        _id: import("mongoose").Types.ObjectId;
        __v: number;
    }>;
    activate(uid: string): Promise<{
        id: string;
        uid: string;
        email: string;
        fullName: string;
        name?: string;
        employeeCode: string;
        mobileNumber?: string;
        sittingLocation?: string;
        reportingManagerId?: string;
        role: UserRole;
        deviceId?: string;
        profileImage?: string;
        status: UserStatus;
        fcmToken?: string;
        isRooted: boolean;
        presence: import("../common/constants/enums").EmployeePresence;
        lastSeenAt?: Date;
        _id: import("mongoose").Types.ObjectId;
        __v: number;
    }>;
}
