/**
 * Partnership Types Module
 *
 * Type definitions for plugin developer partnerships and premium plugin support.
 * These types support the developer collaboration system that enables premium
 * plugin developers to integrate with Pluginator's update checking system.
 */
/**
 * Marketplace platforms where plugins are sold
 */
export type MarketplaceType = 'spigot' | 'polymart' | 'builtbybit' | 'modrinth' | 'other';
/**
 * How the plugin is distributed to users
 */
export type DistributionType = 'marketplace-redirect' | 'direct' | 'license-gated';
/**
 * Developer verification status
 */
export type VerificationStatus = 'pending' | 'verified' | 'rejected';
/**
 * Developer partnership information
 * Represents a plugin developer who has partnered with Pluginator
 */
export interface DeveloperPartnership {
    /** Unique identifier for the partnership */
    id: string;
    /** Developer or studio name */
    developerName: string;
    /** Contact email for partnership communications */
    contactEmail: string;
    /** Primary marketplace where they sell plugins */
    marketplace: MarketplaceType;
    /** URL to their marketplace profile for verification */
    marketplaceProfile: string;
    /** List of plugins they've registered */
    plugins: PartnerPlugin[];
    /** Current verification status */
    verificationStatus: VerificationStatus;
    /** API key for authenticated requests (only for verified developers) */
    apiKey?: string;
    /** Webhook URL for release notifications */
    webhookUrl?: string;
    /** When the partnership was created */
    createdAt: string;
    /** Last update timestamp */
    updatedAt: string;
}
/**
 * A plugin registered by a partner developer
 */
export interface PartnerPlugin {
    /** Unique plugin identifier (lowercase, hyphenated) */
    id: string;
    /** Display name of the plugin */
    name: string;
    /** Brief description */
    description: string;
    /** Marketplace where this plugin is sold */
    marketplace: string;
    /** Resource ID on the marketplace */
    marketplaceId: string;
    /** URL to the plugin's manifest file (if self-hosted) */
    manifestUrl?: string;
    /** Endpoint for license verification (if supported) */
    licenseVerificationEndpoint?: string;
    /** How users obtain the plugin */
    downloadType: DistributionType;
    /** Supported Minecraft versions */
    minecraftVersions: {
        min: string;
        max: string;
    };
    /** Always true for partner plugins */
    premium: true;
    /** Whether the plugin has been verified */
    verified: boolean;
}
/**
 * Premium plugin manifest format
 * This is the JSON format that developers can host to provide update information
 */
export interface PremiumPluginManifest {
    /** Manifest format version for compatibility */
    manifestVersion: string;
    /** Basic plugin information */
    plugin: {
        /** Unique plugin identifier */
        id: string;
        /** Display name */
        name: string;
        /** Author/developer name */
        author: string;
        /** Plugin website URL */
        website?: string;
    };
    /** Information about the latest version */
    latestVersion: {
        /** Version string (e.g., "9.7.0.0") */
        version: string;
        /** Supported Minecraft versions */
        minecraftVersions: string[];
        /** Release date in ISO format */
        releaseDate: string;
        /** URL to changelog or changelog text */
        changelog?: string;
        /** File checksum for verification */
        checksum?: {
            /** Hash algorithm (sha256 recommended) */
            algorithm: string;
            /** Hash value */
            value: string;
        };
    };
    /** How the plugin is distributed */
    distribution: {
        /** Distribution method */
        type: DistributionType;
        /** URL where users can purchase the plugin */
        purchaseUrl: string;
        /** Direct download URL (if type is 'direct' or 'license-gated') */
        downloadUrl?: string;
        /** Whether a license key is required for download */
        licenseRequired: boolean;
    };
    /** Support resources */
    support?: {
        /** Documentation/wiki URL */
        wiki?: string;
        /** Discord server invite */
        discord?: string;
        /** Support email */
        email?: string;
    };
}
/**
 * Developer registration request payload
 */
export interface DeveloperRegistrationRequest {
    /** Developer or studio name */
    developerName: string;
    /** Contact email */
    contactEmail: string;
    /** Primary marketplace */
    marketplace: MarketplaceType;
    /** Marketplace profile URL */
    marketplaceProfile: string;
    /** Optional Discord username for contact */
    discord?: string;
    /** Optional webhook URL for release notifications */
    webhookUrl?: string;
}
/**
 * Plugin registration request payload
 */
export interface PluginRegistrationRequest {
    /** Developer's partnership ID */
    developerId: string;
    /** Plugin identifier */
    pluginId: string;
    /** Plugin display name */
    pluginName: string;
    /** Brief description */
    description: string;
    /** Marketplace resource ID */
    marketplaceId: string;
    /** Distribution type */
    downloadType: DistributionType;
    /** Minimum supported MC version */
    minMcVersion: string;
    /** Maximum supported MC version */
    maxMcVersion: string;
    /** Self-hosted manifest URL (optional) */
    manifestUrl?: string;
}
/**
 * Webhook payload for release notifications
 */
export interface ReleaseWebhookPayload {
    /** Plugin identifier */
    pluginId: string;
    /** New version string */
    version: string;
    /** Supported Minecraft versions */
    minecraftVersions: string[];
    /** Release date in ISO format */
    releaseDate: string;
    /** Changelog text or URL */
    changelog?: string;
    /** File checksum */
    checksum?: {
        algorithm: string;
        value: string;
    };
    /** Timestamp of the webhook */
    timestamp: string;
    /** Signature for verification */
    signature?: string;
}
//# sourceMappingURL=partnership.d.ts.map