import type { Request } from 'express';
import type { JwtUserPayload } from './jwt.types';
import { UsersService } from '../users/users.service';
import { AuthService } from './auth.service';
import { LoginDto } from './dto/login.dto';
import { RefreshTokenDto } from './dto/refresh-token.dto';
import { LogoutDto } from './dto/logout.dto';
import { ForgotPasswordDto } from './dto/forgot-password.dto';
import { ResetPasswordDto } from './dto/reset-password.dto';
import { JwtService } from '@nestjs/jwt';
import { ConfigService } from '@nestjs/config';
export declare class AuthController {
    private readonly auth;
    private readonly users;
    private readonly jwt;
    private readonly config;
    constructor(auth: AuthService, users: UsersService, jwt: JwtService, config: ConfigService);
    me(user: 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("../users/user-api.mapper").ManagerSummary | undefined;
        deviceId: string | null;
        profileImage: string | null;
        status: string | null;
        presence: string | null;
        createdAt: Date | null;
        updatedAt: Date | null;
    } | null>;
    login(body: LoginDto): Promise<{
        accessToken: string;
        refreshToken: string;
        user: {
            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("../users/user-api.mapper").ManagerSummary | undefined;
            deviceId: string | null;
            profileImage: string | null;
            status: string | null;
            presence: string | null;
            createdAt: Date | null;
            updatedAt: Date | null;
        };
    }>;
    refresh(body: RefreshTokenDto): Promise<{
        accessToken: string;
        refreshToken: string;
        user: {
            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("../users/user-api.mapper").ManagerSummary | undefined;
            deviceId: string | null;
            profileImage: string | null;
            status: string | null;
            presence: string | null;
            createdAt: Date | null;
            updatedAt: Date | null;
        };
    }>;
    logout(body: LogoutDto, req: Request): Promise<{
        ok: boolean;
    }>;
    forgot(body: ForgotPasswordDto): Promise<{
        ok: boolean;
    }>;
    reset(body: ResetPasswordDto): Promise<{
        ok: boolean;
    }>;
}
