export declare enum LicenseType { TRIAL = "trial", STANDARD = "standard", PROFESSIONAL = "professional", ENTERPRISE = "enterprise", CUSTOM = "custom" } export interface LicenseFeatures { aiAssistant: boolean; advancedAnalytics: boolean; customReports: boolean; apiAccess: boolean; whiteLabel: boolean; multiTenant: boolean; customIntegration: boolean; premiumSupport: boolean; [key: string]: boolean | undefined; } export interface LicenseLimits { maxUsers?: number; maxRequests?: number; maxStorage?: number; concurrentSessions?: number; maxProjects?: number; maxTeams?: number; } export interface LicenseBindings { domain?: string; ipAddress?: string; machineId?: string; macAddress?: string; } export interface LicenseData { licenseId: string; clientId: string; type: LicenseType; customerName: string; customerEmail?: string; features: LicenseFeatures; limits: LicenseLimits; bindings: LicenseBindings; issuedAt: string; expiresAt: string; gracePeriodDays?: number; metadata?: Record; } export interface License { data: LicenseData; signature: string; version: string; isValid(): boolean; getError(): string | null; hasFeature(feature: keyof LicenseFeatures): boolean; isWithinLimit(limitType: keyof LicenseLimits, currentValue: number): boolean; isExpired(): boolean; isBindingMatch(bindings: Partial): boolean; isInGracePeriod(): boolean; getGracePeriodDaysRemaining(): number; export(format: 'json' | 'base64'): string; } export interface LicenseGenerateOptions extends Partial { duration?: number; } export interface LicenseVerifyOptions { checkBindings?: Partial; strict?: boolean; allowGracePeriod?: boolean; } export interface KeyPair { publicKey: string; privateKey: string; } export declare class LicenseError extends Error { code: string; constructor(message: string, code: string); } export declare enum ErrorCode { INVALID_SIGNATURE = "INVALID_SIGNATURE", EXPIRED = "EXPIRED", INVALID_BINDING = "INVALID_BINDING", LIMIT_EXCEEDED = "LIMIT_EXCEEDED", INVALID_FORMAT = "INVALID_FORMAT", MISSING_REQUIRED_FIELD = "MISSING_REQUIRED_FIELD", PARSE_ERROR = "PARSE_ERROR" } //# sourceMappingURL=index.d.ts.map