import { OnModuleInit } from '@nestjs/common';
import { Repository } from 'typeorm';
import { ApiKey, ApiKeyRole } from './entities/api-key.entity';
import { CreateApiKeyDto, UpdateApiKeyDto } from './dto';
export declare class AuthService implements OnModuleInit {
    private readonly apiKeyRepository;
    private readonly logger;
    constructor(apiKeyRepository: Repository<ApiKey>);
    onModuleInit(): Promise<void>;
    private seedApiKey;
    createApiKey(dto: CreateApiKeyDto): Promise<{
        apiKey: ApiKey;
        rawKey: string;
    }>;
    findAll(): Promise<ApiKey[]>;
    findOne(id: string): Promise<ApiKey>;
    update(id: string, dto: UpdateApiKeyDto): Promise<ApiKey>;
    delete(id: string): Promise<void>;
    revoke(id: string): Promise<ApiKey>;
    validateApiKey(rawKey: string, clientIp?: string, sessionId?: string): Promise<ApiKey>;
    private hashKey;
    private isIpAllowed;
    private ipInCidr;
    private ipToNumber;
    hasPermission(apiKey: ApiKey, requiredRole: ApiKeyRole): boolean;
}
