import type { FederationRemote } from './remote-loader.js'; export interface RegisteredRemote extends FederationRemote { version?: string; integrity?: string; meta?: Record; } export interface RemoteRegistryOptions { /** * Allowed origins for `entryUrl`. Wildcard `*` matches a single subdomain * label, `**` matches multiple. When set, `register()` rejects remotes * whose origin is not on the list. */ allowedOrigins?: string[]; /** Custom validator. Throws on rejection. */ validate?: (remote: RegisteredRemote) => void; /** Called after a remote URL changes. Batched per `load()` call. */ onChange?: (remote: RegisteredRemote) => void; /** Called once per `load()` call after all registrations apply. */ onChangeBatch?: (changed: RegisteredRemote[]) => void; /** * If true (default), `register()` rejects schemes outside `http:` / `https:`. */ httpOnly?: boolean; } export declare class RemoteRegistry { private remotes; private opts; private originMatchers; constructor(opts?: RemoteRegistryOptions); private originAllowed; register(remote: RegisteredRemote): void; unregister(name: string): void; get(name: string): RegisteredRemote | undefined; list(): RegisteredRemote[]; load(manifestUrl: string, fetchImpl?: typeof fetch): Promise; } export declare function getRemoteRegistry(opts?: RemoteRegistryOptions): RemoteRegistry; //# sourceMappingURL=remote-registry.d.ts.map