import { ConfigService } from "@nestjs/config";
import { AdminUserRole } from "@prisma/client";
import { PrismaService } from "../prisma/prisma.service";
import type { AdminUserPublicDto, AuthResponseDto } from "./dto/auth-response.dto";
export interface AdminAccessClaims {
    sub: string;
    email: string;
    role: AdminUserRole;
    kind: "admin_user_access";
}
export declare class AdminAuthService {
    private readonly prisma;
    private readonly config;
    constructor(prisma: PrismaService, config: ConfigService);
    login(email: string, password: string): Promise<AuthResponseDto>;
    refresh(refreshToken: string): Promise<AuthResponseDto>;
    getMe(userId: string): Promise<AdminUserPublicDto>;
    verifyAccessToken(token: string): AdminAccessClaims;
    bootstrapFirstAdmin(input: {
        email: string;
        name: string;
        password: string;
    }): Promise<{
        created: boolean;
        user: AdminUserPublicDto;
    }>;
    private buildAuthResponse;
    private toPublic;
    private getAccessSecret;
    private getRefreshSecret;
}
