import type { Request, Response } from 'express';
import { ClsService } from 'nestjs-cls';
import { ConfigService } from '@nestjs/config';
import { AuthService } from './auth.service';
import { LoginDto, ForgotPasswordDto, ResetPasswordDto } from './dto';
export declare class AuthController {
    private readonly authService;
    private readonly cls;
    private readonly configService;
    constructor(authService: AuthService, cls: ClsService, configService: ConfigService);
    login(dto: LoginDto, req: Request, res: Response): Promise<import("../common/responses/api-response").ApiResponse<import("./dto").AuthResponseDto>>;
    refresh(req: Request, res: Response): Promise<import("../common/responses/api-response").ApiResponse<{
        refreshed: boolean;
    }>>;
    logout(req: Request, res: Response): Promise<import("../common/responses/api-response").ApiResponse<null>>;
    getProfile(req: Request): Promise<import("../common/responses/api-response").ApiResponse<{
        id: string;
        name: string;
        email: string;
        phone: string | null;
        tenant_id: string;
        role: string | null;
        role_id: string | null;
        permissions: Record<string, string>;
        view_all_bookings_queries: boolean;
        active_destination_id: string | null;
        destinations: any;
    }>>;
    exitImpersonation(req: Request, res: Response): Promise<import("../common/responses/api-response").ApiResponse<{
        exited: boolean;
    }>>;
    impersonate(userId: string, req: Request, res: Response): Promise<import("../common/responses/api-response").ApiResponse<{
        impersonating: {
            id: string;
            name: string;
            email: string;
        };
    }>>;
    forgotPassword(dto: ForgotPasswordDto, req: Request): Promise<import("../common/responses/api-response").ApiResponse<null>>;
    resetPassword(dto: ResetPasswordDto, req: Request): Promise<import("../common/responses/api-response").ApiResponse<null>>;
    private resolveFrontendOrigin;
}
