import type { IntegrationDefinition, IntegrationRef } from '../../integrations/types.js';
import type { HubCacheEntry } from '../../integrations/hub-cache.js';
import { CatalogClientFactory } from './client-factory.js';
import type { CatalogSource, ResolvedSpec } from './catalog-service.js';
/**
 * Cloud-fetch logic for integrations (private workspace first, then public hub),
 * plus hub search / interface-implementer lookup / version listing. Moved verbatim
 * from the old IntegrationManager; the cache orchestration now lives in
 * {@link CatalogService}.
 */
export declare class IntegrationCatalogSource implements CatalogSource<IntegrationDefinition, IntegrationRef> {
    private readonly clientFactory;
    readonly cacheConfig: {
        cacheType: string;
        idField: string;
    };
    constructor(clientFactory: CatalogClientFactory);
    fetchByRef(ref: IntegrationRef): Promise<ResolvedSpec<IntegrationDefinition>>;
    /** Search public integrations in the Botpress hub. */
    search(query: string, limit?: number): Promise<HubCacheEntry[]>;
    /**
     * Find public integrations that implement a given interface (by interface name).
     * Returns the latest version per integration name, ranked by Cloud's popularity.
     */
    findImplementersOfInterface(interfaceName: string, limit?: number): Promise<HubCacheEntry[]>;
    /** List known public versions for an integration name. */
    listVersions(name: string): Promise<string[]>;
    private _findPrivateOrPublicIntegration;
    private _findPrivateIntegration;
    private _findPublicIntegration;
    private _isResourceNotFoundError;
    private _buildIntegrationNotFoundError;
}
//# sourceMappingURL=integration-source.d.ts.map