/**
 * Web Manifest Source
 *
 * Fetches plugin information from custom JSON manifest files
 * Used for self-hosted plugin repositories
 */
import type { PluginInfo, SourceType } from '../types/index.js';
import { BasePluginSource } from './base.js';
/**
 * WebManifestSource implementation
 */
export declare class WebManifestSource extends BasePluginSource {
    readonly id: string;
    readonly name: string;
    readonly type: SourceType;
    private manifestUrl;
    private manifestCache;
    private cacheExpiry;
    constructor(id: string, name: string, manifestUrl: string, cacheTtlSeconds?: number);
    /**
     * Get plugin info by name
     */
    getPluginInfo(pluginName: string): Promise<PluginInfo | null>;
    /**
     * Search for plugins in the manifest
     */
    searchPlugins(query: string, limit?: number): Promise<PluginInfo[]>;
    /**
     * Get latest version for a plugin
     */
    getLatestVersion(pluginName: string): Promise<string | null>;
    /**
     * Get all plugins from the manifest
     */
    listPlugins(): Promise<PluginInfo[]>;
    /**
     * Get the manifest URL
     */
    getManifestUrl(): string;
    /**
     * Set a new manifest URL
     */
    setManifestUrl(url: string): void;
    /**
     * Load and cache the manifest
     */
    private loadManifest;
    /**
     * Parse manifest plugin into PluginInfo
     */
    private parsePlugin;
}
/**
 * Create a WebManifestSource from a config object
 */
export declare function createWebManifestSource(config: {
    id: string;
    name: string;
    url: string;
    cacheTtl?: number;
}): WebManifestSource;
//# sourceMappingURL=web-manifest.d.ts.map