interface LicenseDetails {
    orderNumber: string;
    expiryDate: Date;
}
declare function generateLicence(details: LicenseDetails): string;

declare class LicenseInfo {
    static getKey(): string;
    static getReleaseInfo(): string;
    static setLicenseKey(key: string): void;
    static setReleaseInfo(encodedReleaseInfo: string): void;
}

declare function showInvalidLicenseError(): void;
declare function showNotFoundLicenseError(): void;
declare function showExpiredLicenseError(): void;

declare enum LicenseStatus {
    NotFound = "NotFound",
    Invalid = "Invalid",
    Expired = "Expired",
    Valid = "Valid"
}

declare function generateReleaseInfo(): string;
declare function verifyLicense(releaseInfo: string, encodedLicense: string): LicenseStatus;

declare function useLicenseVerifier(): LicenseStatus;

export { LicenseDetails, LicenseInfo, LicenseStatus, generateLicence, generateReleaseInfo, showExpiredLicenseError, showInvalidLicenseError, showNotFoundLicenseError, useLicenseVerifier, verifyLicense };
