import { AuthService } from './auth.service';
import { CreateUserDto } from '../users/dto/create-user.dto';
import { LoginDto } from './dto/login.dto';
import { ForgotPasswordDto } from './dto/forgot-password.dto';
import { ResetPasswordDto } from './dto/reset-password.dto';
import { LoginSource } from '../users/entities/user.entity';
interface AuthUserPayload {
    id: string;
    email: string;
    role: string;
    source: LoginSource;
    jti: string;
    exp: number;
}
export declare class AuthController {
    private readonly authService;
    constructor(authService: AuthService);
    register(createUserDto: CreateUserDto): Promise<{
        message: string;
        user: {
            id: string;
            email: string;
            status: import("../users/entities/user.entity").UserStatus;
        };
    }>;
    login(loginDto: LoginDto): Promise<{
        access_token: string;
        user: import("../users/entities/user.entity").User;
    }>;
    forgotPassword(dto: ForgotPasswordDto): Promise<{
        message: string;
    }>;
    resetPassword(dto: ResetPasswordDto): Promise<{
        message: string;
    }>;
    logout(user: AuthUserPayload): Promise<{
        message: string;
    }>;
    verify(user: AuthUserPayload): {
        valid: boolean;
        user: {
            id: string;
            email: string;
            role: string;
            source: LoginSource;
        };
    };
}
export {};
