import { CreateApiKeyDto } from '../dtos/create-api-key.dto';
import { UpdateApiKeyDto } from '../dtos/update-api-key.dto';
import { UserApiKey } from '../entities/user-api-key.entity';
import { ActiveUserData } from '../interfaces/active-user-data.interface';
import { UserApiKeyRepository } from '../repository/user-api-key.repository';
import { PermissionMetadataService } from '../services/permission-metadata.service';
import { AuthenticationService } from './authentication.service';
import { UserRepository } from '../repository/user.repository';
export declare class ApiKeyService {
    private readonly apiKeyRepository;
    private readonly permissionMetadataService;
    private readonly authenticationService;
    private readonly userRepository;
    private readonly logger;
    constructor(apiKeyRepository: UserApiKeyRepository, permissionMetadataService: PermissionMetadataService, authenticationService: AuthenticationService, userRepository: UserRepository);
    generate(userId: number, dto: CreateApiKeyDto): Promise<{
        apiKey: string;
        record: UserApiKey;
    }>;
    validate(rawKey: string): Promise<ActiveUserData>;
    updateKey(id: number, userId: number, dto: UpdateApiKeyDto): Promise<void>;
    apiKeyMe(apiKey: string): Promise<{
        accessToken: string;
        refreshToken: string;
        user: {
            email: string;
            mobile: string;
            username: string;
            forcePasswordChange: boolean;
            id: number;
            roles: string[];
        };
    }>;
    private hash;
}
//# sourceMappingURL=api-key.service.d.ts.map