import { Model } from 'mongoose'; import { ApiKeyDocument } from '../database/schemas/api-key.schema'; import { StrategyDocument } from '../database/schemas/strategy.schema'; export interface ApiKeyValidationResult { isValid: boolean; apiKey?: ApiKeyDocument; reason?: string; } export interface StrategyPermissionResult { hasPermission: boolean; reason?: string; } export declare class AuthService { private readonly apiKeyModel; private readonly strategyModel; private readonly logger; constructor(apiKeyModel: Model, strategyModel: Model); private hashApiKey; generateApiKey(prefix?: string): string; createApiKey(params: { name: string; issuer: string; allowedStrategies?: string[]; expiresAt?: Date; expiresInDays?: number; metadata?: Record; }): Promise<{ apiKey: string; keyId: string; expiresAt?: Date; }>; validateApiKey(apiKey: string): Promise; hasStrategyPermission(apiKey: string, strategyId: string): Promise; validateAccess(apiKey: string, strategyId: string): Promise; getApiKeysForIssuer(issuer: string): Promise; revokeApiKey(keyId: string, issuer?: string): Promise; }