/**
 * TEST-ONLY: Minimal in-memory mock of a subset of the JFrog Artifactory npm API surface
 * tailored to fhir-package-installer integration testing.
 *
 * Features:
 * 1. Bearer token auth (single fixed token) -> 401 if missing, 403 if invalid.
 * 2. Package metadata proxying to an upstream registry (defaults to packages.fhir.org).
 * 3. Tarball URL rewriting so downstream code exercises redirect logic.
 * 4. Tarball request simulation via 302 redirect to an upstream tarball base (defaults to packages.simplifier.net).
 *
 * NOT FOR PRODUCTION USE. Surface is intentionally small; breaking changes unlikely but
 * additions may occur in minor versions. Kept here so downstream libraries can reuse
 * without duplicating test utilities.
 */
interface MockArtifactoryServerApi {
    /** Starts listening. If port was 0, a random available port will be selected. */
    start(): Promise<void>;
    /** Gracefully stops the server. */
    stop(): Promise<void>;
    /** Base URL (http://localhost:port). */
    getBaseUrl(): string;
    /** Returns the static valid bearer token you must send under Authorization header. */
    getValidToken(): string;
}
type MockArtifactoryServerOptions = {
    /** Upstream npm-like registry base URL, e.g. https://packages.fhir.org or http://localhost:PORT */
    upstreamRegistryUrl?: string;
    /** Upstream tarball base URL used for 302 redirects, e.g. https://packages.simplifier.net or http://localhost:PORT */
    upstreamTarballBaseUrl?: string;
};
/** Factory to create a new mock Artifactory server instance.
 * @param port Optional port. Pass 0 for ephemeral.
 */
declare function createMockArtifactoryServer(port?: number, options?: MockArtifactoryServerOptions): MockArtifactoryServerApi;
declare const MOCK_ARTIFACTORY_VALID_TOKEN = "test-token";

export { MOCK_ARTIFACTORY_VALID_TOKEN, type MockArtifactoryServerApi, type MockArtifactoryServerOptions, createMockArtifactoryServer };
