/*!
 * name: nuget-server
 * version: 0.19.0
 * description: NuGet server on Node.js
 * author: Kouji Matsui (@kekyo@mi.kekyo.net)
 * license: MIT
 * repository.url: https://github.com/kekyo/nuget-server.git
 * git.commit.hash: 5b9501882b352a0490b3091210ed1740cfb81389
 */

import { FastifyInstance } from 'fastify';
import { PackageMetadata } from '../../../services/metadataService';
import { Logger, DuplicatePackagePolicy } from '../../../types';
import { AuthService } from '../../../services/authService';
import { FastifyAuthConfig } from '../../../middleware/fastifyAuth';
import { createUrlResolver } from '../../../utils/urlResolver';
/**
 * Service interface for handling package uploads
 */
export interface PackageUploadService {
    addPackage(metadata: PackageMetadata, policy?: DuplicatePackagePolicy): Promise<{
        action: "added" | "overwritten" | "ignored" | "error";
        message?: string;
    }>;
}
/**
 * Configuration for publish routes
 */
export interface PublishRoutesConfig {
    packagesRoot: string;
    authService: AuthService;
    authConfig: FastifyAuthConfig;
    logger: Logger;
    urlResolver: ReturnType<typeof createUrlResolver>;
    duplicatePackagePolicy?: DuplicatePackagePolicy;
}
/**
 * Publish response interface
 */
export interface PublishResponse {
    message: string;
    id: string;
    version: string;
}
/**
 * Registers package publish API routes with Fastify instance
 */
export declare const registerPublishRoutes: (fastify: FastifyInstance, config: PublishRoutesConfig) => Promise<{
    setPackageUploadService: (service: PackageUploadService) => void;
}>;
//# sourceMappingURL=index.d.ts.map