/**
 * Type Adapters
 *
 * Conversion utilities between different plugin type representations.
 * Used for migrating from legacy Plugin[] to CombinedPlugin[] interface.
 *
 * @since v1.50.1
 */
import type { Plugin } from './plugin.js';
import type { ScannedPlugin } from './plugin.js';
import type { PluginPreferenceState } from './preferences.js';
import type { UserPluginEntry } from './user-registry.js';
/**
 * Combined plugin data (registry + scan + preferences)
 * Mirrors the interface from usePlugins hook
 */
export interface CombinedPlugin {
    /** Plugin name */
    name: string;
    /** Registry entry (if configured) */
    registry?: UserPluginEntry;
    /** Scanned plugin from production */
    prodScan?: ScannedPlugin;
    /** Scanned plugin from test */
    testScan?: ScannedPlugin;
    /** User preferences */
    preferences: PluginPreferenceState;
    /** Is installed on production */
    installedOnProd: boolean;
    /** Is installed on test */
    installedOnTest: boolean;
    /** Version on production */
    prodVersion?: string;
    /** Version on test */
    testVersion?: string;
    /** Is version different between servers */
    versionMismatch: boolean;
    /** Is the JAR file actually disabled on production (renamed to .jardis etc.) */
    fileDisabledOnProd?: boolean;
    /** Is the JAR file actually disabled on test (renamed to .jardis etc.) */
    fileDisabledOnTest?: boolean;
}
/**
 * Convert a CombinedPlugin to legacy Plugin format
 *
 * Used for APIs that still expect Plugin[] (e.g., useUpdates, sync workflow)
 */
export declare function toPlugin(combined: CombinedPlugin): Plugin;
/**
 * Convert an array of CombinedPlugin to legacy Plugin[] format
 *
 * Used for APIs that still expect Plugin[] (e.g., useUpdates, sync workflow)
 */
export declare function toPlugins(combined: CombinedPlugin[]): Plugin[];
/**
 * Convert a legacy Plugin to CombinedPlugin format
 *
 * Useful for importing existing plugin configurations
 */
export declare function fromPlugin(plugin: Plugin, prefs?: Partial<PluginPreferenceState>): CombinedPlugin;
/**
 * Convert an array of legacy Plugin to CombinedPlugin[] format
 */
export declare function fromPlugins(plugins: Plugin[]): CombinedPlugin[];
/**
 * Extract plugin names that are disabled on test server
 */
export declare function getDisabledOnTestNames(plugins: CombinedPlugin[]): string[];
/**
 * Extract plugin names that are disabled on prod server
 */
export declare function getDisabledOnProdNames(plugins: CombinedPlugin[]): string[];
/**
 * Extract plugin names that should skip migration to prod
 */
export declare function getSkipMigrateNames(plugins: CombinedPlugin[]): string[];
/**
 * Extract pinned plugin names
 */
export declare function getPinnedNames(plugins: CombinedPlugin[]): string[];
//# sourceMappingURL=adapters.d.ts.map