import type { PluginOrigin } from "../../plugins/types.js";
import type { ChannelMeta } from "./types.js";
export type ChannelUiMetaEntry = {
    id: string;
    label: string;
    detailLabel: string;
    systemImage?: string;
};
export type ChannelUiCatalog = {
    entries: ChannelUiMetaEntry[];
    order: string[];
    labels: Record<string, string>;
    detailLabels: Record<string, string>;
    systemImages: Record<string, string>;
    byId: Record<string, ChannelUiMetaEntry>;
};
export type ChannelPluginCatalogSource = PluginOrigin | "external-catalog" | "official-catalog";
export type ChannelPluginCatalogEntry = {
    id: string;
    meta: ChannelMeta;
    catalogSource: ChannelPluginCatalogSource;
    install: {
        npmSpec?: string;
        localPath?: string;
        defaultChoice?: "npm" | "local";
        expectedIntegrity?: string;
    };
};
export declare function resolveChannelPluginExpectedPluginIds(entry: {
    id: string;
    meta?: {
        aliases?: string[];
    };
}): string[];
type CatalogOptions = {
    workspaceDir?: string;
    catalogPaths?: string[];
    officialCatalogPaths?: string[];
};
export declare function formatChannelPluginCatalogSource(source: ChannelPluginCatalogSource): string;
export declare function formatChannelPluginCatalogInstallBits(entry: ChannelPluginCatalogEntry): string[];
export declare function formatChannelPluginCatalogSelectionHint(entry: ChannelPluginCatalogEntry): string;
export declare function formatChannelPluginCatalogStatusLine(entry: ChannelPluginCatalogEntry): string;
export declare function buildChannelUiCatalog(plugins: Array<{
    id: string;
    meta: ChannelMeta;
}>): ChannelUiCatalog;
export declare function listChannelPluginCatalogEntries(options?: CatalogOptions): ChannelPluginCatalogEntry[];
export declare function getChannelPluginCatalogEntry(id: string, options?: CatalogOptions): ChannelPluginCatalogEntry | undefined;
export {};
