import type { Request, Response } from 'express';
import { LoginDto } from './dto/login.dto';
import { PasswordSetupTokenDto, SetPasswordDto } from './dto/password-setup.dto';
import { AuthService } from './auth.service';
import type { AuthRequestUser } from './interfaces/auth-request-user.interface';
export declare class AuthController {
    private readonly authService;
    constructor(authService: AuthService);
    login(loginDto: LoginDto, response: Response): Promise<{
        user: import("./auth.types").SafeUser;
        redirectTo: string;
    }>;
    validatePasswordSetup(dto: PasswordSetupTokenDto): Promise<{
        valid: boolean;
        name: string;
        email: string;
    }>;
    setupPassword(dto: SetPasswordDto): Promise<{
        success: boolean;
    }>;
    refresh(request: Request, response: Response): Promise<{
        user: import("./auth.types").SafeUser;
        redirectTo: string;
    }>;
    logout(request: Request, response: Response): Promise<{
        success: boolean;
    }>;
    me(request: Request & {
        user: AuthRequestUser;
    }): Promise<{
        user: Express.User & AuthRequestUser;
        redirectTo: string;
    }>;
}
