import { PrismaService } from '../prisma/prisma.service';
import { TokenService } from './token.service';
export type LoginDto = {
    email?: string;
    password?: string;
};
export declare class AuthService {
    private readonly prisma;
    private readonly tokenService;
    constructor(prisma: PrismaService, tokenService: TokenService);
    login(loginDto: LoginDto): Promise<{
        accessToken: string;
        tokenType: string;
        expiresIn: number;
        user: {
            id: string;
            email: string;
            name: string;
            role: import("../generated/prisma/index").$Enums.UserRole;
            status: import("../generated/prisma/index").$Enums.UserStatus;
        };
        permissions: string[];
    }>;
    getSession(authorizationHeader?: string): Promise<{
        user: {
            id: string;
            email: string;
            name: string;
            role: import("../generated/prisma/index").$Enums.UserRole;
            status: import("../generated/prisma/index").$Enums.UserStatus;
        };
        permissions: string[];
    }>;
    getRolePermissions(): {
        roles: {
            ADMIN: string[];
            MANAGER: string[];
            STAFF: string[];
            EMPLOYEE: string[];
            USER: string[];
        };
    };
    private createSession;
    private toPublicUser;
}
