import { Request } from "express";
import { AuthService, CreateUserDto, JwtPayload, UpdateUserDto } from "./auth.service";
export declare class AuthController {
    private readonly authService;
    constructor(authService: AuthService);
    login(body: {
        email: string;
        password: string;
    }): Promise<{
        accessToken: string;
        user: {
            id: string;
            email: string;
            name: string;
            role: import("./schemas/user.schema").UserRole;
        };
    }>;
    me(req: Request & {
        user: {
            sub: string;
        };
    }): Promise<import("./auth.service").PublicUser | null>;
    listUsers(req: Request & {
        user: JwtPayload;
    }): Promise<import("./auth.service").PublicUser[]>;
    createUser(req: Request & {
        user: JwtPayload;
    }, body: CreateUserDto): Promise<import("./auth.service").PublicUser>;
    updateUser(req: Request & {
        user: JwtPayload;
    }, id: string, body: UpdateUserDto): Promise<import("./auth.service").PublicUser>;
    deleteUser(req: Request & {
        user: JwtPayload;
    }, id: string): Promise<import("./auth.service").PublicUser>;
    private ensureCanManageUsers;
}
