import type { WebhookUrlPolicy } from "../integrations/ssrf.js"; import { type PluginSource } from "./types.js"; export interface PluginArchiveDownload { body: Buffer; finalUrl: string; } export interface PluginArchiveDownloadOptions { onProgress?: (update: { receivedBytes: number; totalBytes?: number; }) => void; signal?: AbortSignal; } export interface PluginArchiveDownloader { download(url: string, options?: PluginArchiveDownloadOptions): Promise; } export interface RemotePluginSource { archiveUrl: string; kind: "github" | "zip_url"; repositoryUrl?: string; } /** Downloads bounded public HTTPS archives while pinning every redirect hop to policy-approved addresses. */ export declare class NodePluginArchiveDownloader implements PluginArchiveDownloader { private readonly urlPolicy; constructor(urlPolicy: WebhookUrlPolicy); download(url: string, options?: PluginArchiveDownloadOptions): Promise; } /** Normalizes an administrator-supplied ZIP or GitHub URL into a remotely checkable source. */ export declare function remotePluginSource(kind: "github" | "zip_url", value: string): RemotePluginSource; export declare function downloadedPluginSource(remote: RemotePluginSource, packagePath: string): PluginSource; export declare function uploadedPluginSource(packageDigest: string): PluginSource; export declare function remotePluginSourceFromInstalled(source: PluginSource): RemotePluginSource & { packagePath?: string; }; //# sourceMappingURL=source.d.ts.map