import { ConfigService } from '@nestjs/config';
import type { FastifyReply, FastifyRequest } from 'fastify';
import type { AuthenticatedUser } from '../../common/auth/authenticated-user';
import { AuthSessionsService } from './auth-sessions.service';
import { AuthService } from './auth.service';
import { LoginDto } from './dto/login.dto';
import { RegisterDto } from './dto/register.dto';
export declare class AuthController {
    private readonly auth;
    private readonly sessions;
    private readonly config;
    constructor(auth: AuthService, sessions: AuthSessionsService, config: ConfigService);
    register(input: RegisterDto, request: FastifyRequest, reply: FastifyReply): Promise<{
        user: {
            id: string;
            email: string;
            displayName: string | null;
            role: "USER" | "ADMIN";
        };
    }>;
    login(input: LoginDto, request: FastifyRequest, reply: FastifyReply): Promise<{
        user: {
            id: string;
            email: string;
            displayName: string | null;
            role: "USER" | "ADMIN";
        };
    }>;
    logout(user: AuthenticatedUser, reply: FastifyReply): Promise<void>;
    me(user: AuthenticatedUser): {
        user: {
            id: string;
            email: string;
            displayName: string | null;
            role: "USER" | "ADMIN";
        };
    };
    private setSessionCookie;
    private getSessionContext;
    private get cookieName();
    private get isProduction();
}
