import type { TranslationExecutionMode } from '@prisma/client';
export type LicenseStatus = 'active' | 'suspended' | 'expired' | 'revoked';
export type PluginTier = 'personal' | 'professional' | 'agency';
export type MultilingualLicenseInfo = {
    tier: PluginTier;
    status: LicenseStatus;
    sites_allowed: number;
    sites_used: number;
    languages_allowed: number;
    expires_at: string;
};
export declare function hashLicenseKey(licenseKey: string): string;
export declare function generateLicenseKey(prefix?: string): string;
export declare function normalizeSiteUrl(siteUrl: string): string;
export declare function createLicense(params: {
    plan_tier: string;
    sites_allowed: number;
    expires_at: Date;
    languages_allowed?: number;
    plugin?: string;
    user_id?: string;
    execution_mode?: TranslationExecutionMode;
}): Promise<{
    license_key: string;
    license: {
        id: string;
        key_last4: string;
        execution_mode: TranslationExecutionMode;
    };
}>;
export declare function ensureLicensePrincipal(params: {
    license_key: string;
    plugin: string;
}): Promise<{
    user_id: string;
}>;
export declare function activateLicense(params: {
    license_key: string;
    site_url: string;
    plugin?: string;
}): Promise<MultilingualLicenseInfo>;
export declare function deactivateLicense(params: {
    license_key: string;
    site_url: string;
    plugin?: string;
}): Promise<{
    success: true;
}>;
export interface ListLicensesParams {
    page?: number;
    per_page?: number;
    plugin?: string;
    status?: string;
    plan_tier?: string;
    key_last4?: string;
    sort_by?: string;
    sort_order?: 'asc' | 'desc';
}
export declare function listLicenses(params: ListLicensesParams): Promise<{
    data: {
        id: string;
        status: import(".prisma/client").$Enums.LicenseStatus;
        key_last4: string;
        plugin: string;
        plan_tier: string;
        execution_mode: import(".prisma/client").$Enums.TranslationExecutionMode;
        sites_allowed: number;
        languages_allowed: number;
        expires_at: Date;
        created_at: Date;
        _count: {
            activations: number;
        };
    }[];
    pagination: {
        page: number;
        limit: number;
        total: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    };
}>;
export declare function getLicenseById(id: string): Promise<{
    activations: {
        id: string;
        deactivated_at: Date | null;
        license_id: string;
        site_url: string;
        activated_at: Date;
    }[];
} & {
    id: string;
    updated_at: Date;
    status: import(".prisma/client").$Enums.LicenseStatus;
    key_hash: string;
    user_id: string | null;
    key_last4: string;
    plugin: string;
    plan_tier: string;
    execution_mode: import(".prisma/client").$Enums.TranslationExecutionMode;
    sites_allowed: number;
    languages_allowed: number;
    expires_at: Date;
    created_at: Date;
}>;
export declare function updateLicenseStatus(id: string, status: LicenseStatus): Promise<{
    id: string;
    updated_at: Date;
    status: import(".prisma/client").$Enums.LicenseStatus;
    key_hash: string;
    user_id: string | null;
    key_last4: string;
    plugin: string;
    plan_tier: string;
    execution_mode: import(".prisma/client").$Enums.TranslationExecutionMode;
    sites_allowed: number;
    languages_allowed: number;
    expires_at: Date;
    created_at: Date;
}>;
export declare function extendLicense(id: string, newExpiresAt: Date): Promise<{
    id: string;
    updated_at: Date;
    status: import(".prisma/client").$Enums.LicenseStatus;
    key_hash: string;
    user_id: string | null;
    key_last4: string;
    plugin: string;
    plan_tier: string;
    execution_mode: import(".prisma/client").$Enums.TranslationExecutionMode;
    sites_allowed: number;
    languages_allowed: number;
    expires_at: Date;
    created_at: Date;
}>;
export declare function updateLicenseLimits(id: string, limits: {
    sites_allowed?: number;
    languages_allowed?: number;
}): Promise<{
    id: string;
    updated_at: Date;
    status: import(".prisma/client").$Enums.LicenseStatus;
    key_hash: string;
    user_id: string | null;
    key_last4: string;
    plugin: string;
    plan_tier: string;
    execution_mode: import(".prisma/client").$Enums.TranslationExecutionMode;
    sites_allowed: number;
    languages_allowed: number;
    expires_at: Date;
    created_at: Date;
}>;
export declare function regenerateLicenseKey(id: string): Promise<{
    license_key: string;
    key_last4: string;
}>;
export declare function adminDeactivateSite(licenseId: string, activationId: string): Promise<{
    id: string;
    deactivated_at: Date | null;
    license_id: string;
    site_url: string;
    activated_at: Date;
}>;
export declare function validateLicense(params: {
    license_key: string;
    site_url: string;
    plugin?: string;
}): Promise<MultilingualLicenseInfo>;
//# sourceMappingURL=multilingualLicenseService.d.ts.map