import { AuthService } from "./auth.service";
import type { RequestUser } from "./auth.guard";
export declare class AuthController {
    private readonly auth;
    constructor(auth: AuthService);
    signup(body: unknown): Promise<{
        userId: number;
        verificationLink: string;
    }>;
    verifyEmail(body: unknown): Promise<{
        verified: boolean;
    }>;
    login(body: unknown, req: any): Promise<{
        user: {
            id: number;
            email: string;
            emailVerifiedAt: string | null;
            name: string;
            username: string;
            avatarUrl: string | null;
            tz: string;
            createdAt: string;
        };
        tokens: {
            accessToken: string;
            refreshToken: string;
            expiresIn: number;
        };
    }>;
    refresh(body: unknown, req: any): Promise<{
        tokens: {
            accessToken: string;
            refreshToken: string;
            expiresIn: number;
        };
    }>;
    logout(body: unknown): Promise<{
        loggedOut: boolean;
    }>;
    requestMagicLink(body: unknown): Promise<{
        requested: boolean;
    }>;
    consumeMagicLink(body: unknown, req: any): Promise<{
        user: {
            id: number;
            email: string;
            emailVerifiedAt: string | null;
            name: string;
            username: string;
            avatarUrl: string | null;
            tz: string;
            createdAt: string;
        };
        tokens: {
            accessToken: string;
            refreshToken: string;
            expiresIn: number;
        };
    }>;
    requestPasswordReset(body: unknown): Promise<{
        requested: boolean;
    }>;
    confirmPasswordReset(body: unknown): Promise<{
        reset: boolean;
    }>;
    listDevices(user: RequestUser): Promise<{
        sessions: {
            id: number;
            createdAt: string;
            deviceLabel: string | null;
            ip: string | null;
            userAgent: string | null;
            isCurrent: boolean;
        }[];
    }>;
    revokeDevice(user: RequestUser, sessionId: string): Promise<{
        revoked: boolean;
    }>;
}
//# sourceMappingURL=auth.controller.d.ts.map