import { BadRequestException, ExceptionFilter, ArgumentsHost } from '@nestjs/common';
import { RefreshTokenDto } from "./dto/refresh-token.dto";
import { AuthService } from "./auth.service";
import { RegisterDto } from "./dto/register.dto";
import { LoginDto } from "./dto/login.dto";
import { Request } from "express";
import { UsersService } from "../users/users.service";
import { ProfileUpdateDto } from "./dto/profileUpdate.dto";
import { ConfigService } from "@nestjs/config";
import { ChangePasswordDto } from "./dto/changePassword.dto";
import { BlacklistService } from "../blacklist/blacklist.service";
export declare class FileCleanupFilter implements ExceptionFilter {
    private readonly configService;
    constructor(configService: ConfigService);
    catch(exception: BadRequestException, host: ArgumentsHost): void;
}
export declare class AuthController {
    private readonly authService;
    private readonly userService;
    private configService;
    private blacklistService;
    constructor(authService: AuthService, userService: UsersService, configService: ConfigService, blacklistService: BlacklistService);
    register(registerDto: RegisterDto): Promise<{
        message: string;
        user: {
            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;
        };
        token: {
            accessToken: string;
            refreshToken: string;
            expiresIn: any;
            tokenType: string;
        };
    }>;
    login(loginDto: LoginDto): Promise<{
        message: string;
        verified: boolean;
        user: import("../types/common").User;
        token: {
            accessToken: string;
            refreshToken: string;
            expiresIn: any;
            tokenType: string;
        };
    }>;
    refreshTokens(refreshTokenDto: RefreshTokenDto): Promise<{
        accessToken: string;
        refreshToken: string;
        expiresIn: any;
        tokenType: string;
    }>;
    logout(authHeader: string): {
        message: string;
    };
    getProfile(req: Request): 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;
    }>;
    update(req: Request, profileUpdateDto: ProfileUpdateDto, file: Express.Multer.File): 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;
    } | undefined>;
    changePassword(changePasswordDto: ChangePasswordDto, req: any): Promise<{
        message: string;
    }>;
    forgotPassword(email: string): Promise<{
        message: string;
    }>;
    resetPassword(token: string, password: string): Promise<{
        message: string;
    }>;
}
