import { UsersService } from "./users.service";
import { CreateUserDto } from "./dto/create-user.dto";
import { UpdateUserDto } from "./dto/update-user.dto";
export declare class UsersController {
    private readonly usersService;
    constructor(usersService: UsersService);
    create(createUserDto: CreateUserDto): Promise<{
        id: string;
        isActive: boolean;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        email: string;
        phone: string | null;
        provider: string | null;
        providerId: string | null;
        profilePic: string | null;
        role: import(".prisma/client").$Enums.AccountType;
        isEmailVerified: boolean;
        isPermission: boolean;
        warehouseId: string | null;
        warehouse: {
            id: string;
            name: string;
        } | null;
    }>;
    findAll(limit?: string, page?: string, query?: string, role?: string, isActive?: string, warehouseId?: string): Promise<{
        items: {
            id: string;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            email: string;
            phone: string | null;
            provider: string | null;
            providerId: string | null;
            profilePic: string | null;
            role: import(".prisma/client").$Enums.AccountType;
            isEmailVerified: boolean;
            isPermission: boolean;
            warehouseId: string | null;
            warehouse: {
                id: string;
                name: string;
            } | null;
        }[];
        pagination: {
            total: number;
            per_page: number;
            current_page: number;
            last_page: number;
        };
    } | undefined>;
    searchUser(query: string, limit?: string, page?: string, role?: string, isActive?: string): Promise<{
        items: {
            id: string;
            isActive: boolean;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            email: string;
            phone: string | null;
            provider: string | null;
            providerId: string | null;
            profilePic: string | null;
            role: import(".prisma/client").$Enums.AccountType;
            isEmailVerified: boolean;
            isPermission: boolean;
            warehouseId: string | null;
            warehouse: {
                id: string;
                name: string;
            } | null;
        }[];
        pagination: {
            total: number;
            per_page: number;
            current_page: number;
            last_page: number;
        };
    } | undefined>;
    changeStatus(id: string): Promise<{
        id: string;
        isActive: boolean;
    }>;
    getProfile(req: any): Promise<{
        warehouse: {
            id: string;
            name: string;
        } | null;
        id: string;
        isActive: boolean;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        email: string;
        phone: string | null;
        provider: string | null;
        providerId: string | null;
        profilePic: string | null;
        role: import(".prisma/client").$Enums.AccountType;
        isEmailVerified: boolean;
        isPermission: boolean;
        refreshToken: string | null;
        passwordResetToken: string | null;
        passwordResetExpires: Date | null;
        warehouseId: string | null;
        clientId: string | null;
    }>;
    findOne(id: string): Promise<{
        warehouse: {
            id: string;
            name: string;
        } | null;
        id: string;
        isActive: boolean;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        email: string;
        phone: string | null;
        provider: string | null;
        providerId: string | null;
        profilePic: string | null;
        role: import(".prisma/client").$Enums.AccountType;
        isEmailVerified: boolean;
        isPermission: boolean;
        refreshToken: string | null;
        passwordResetToken: string | null;
        passwordResetExpires: Date | null;
        warehouseId: string | null;
        clientId: string | null;
    }>;
    updateUser(id: string, updateUserDto: UpdateUserDto): Promise<{
        id: string;
        isActive: boolean;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        email: string;
        phone: string | null;
        provider: string | null;
        providerId: string | null;
        profilePic: string | null;
        role: import(".prisma/client").$Enums.AccountType;
        isEmailVerified: boolean;
        isPermission: boolean;
        warehouseId: string | null;
        warehouse: {
            id: string;
            name: string;
        } | null;
    }>;
    remove(req: any): Promise<{
        id: string;
    }>;
    removeUser(id: string): Promise<{
        id: string;
    }>;
}
