import { UserApiKeyDocument } from '../models/UserApiKey.js';
export interface CreateApiKeyParams {
    userId: string;
    name: string;
    permissions?: string[];
    expiresAt?: Date;
}
export interface ApiKeyWithUsage {
    keyId: string;
    name: string;
    keyPrefix: string;
    permissions: string[];
    isActive: boolean;
    lastUsed?: Date;
    usageStats: {
        totalRequests: number;
        totalCost: number;
        lastResetDate: Date;
    };
    createdAt: Date;
    expiresAt?: Date;
}
export interface AuthenticatedApiKey {
    keyId: string;
    userId: string;
    permissions: string[];
    keyDocument: UserApiKeyDocument;
}
export declare class UserApiKeyService {
    /**
     * Authenticate API key and return user info
     */
    authenticateApiKey(apiKey: string): Promise<AuthenticatedApiKey | null>;
    /**
     * Record API key usage
     */
    recordUsage(keyId: string, cost: number): Promise<void>;
    /**
     * Check if user has permission for specific action
     */
    hasPermission(authenticatedKey: AuthenticatedApiKey, requiredPermission: string): boolean;
}
export declare const userApiKeyService: UserApiKeyService;
//# sourceMappingURL=userApiKeyService.d.ts.map