/*!
 * 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
 */

/**
 * Logger interface
 */
export interface Logger {
    /**
     * Log an debug message
     * @param msg - The message to log
     */
    readonly debug: (msg: string) => void;
    /**
     * Log an info message
     * @param msg - The message to log
     */
    readonly info: (msg: string) => void;
    /**
     * Log a warning message
     * @param msg - The message to log
     */
    readonly warn: (msg: string) => void;
    /**
     * Log an error message
     * @param msg - The message to log
     */
    readonly error: (msg: string) => void;
}
/**
 * Log levels
 */
export type LogLevel = "debug" | "info" | "warn" | "error" | "ignore";
/**
 * Authentication modes
 */
export type AuthMode = "none" | "publish" | "full";
/**
 * Duplicate package handling policy
 */
export type DuplicatePackagePolicy = "overwrite" | "ignore" | "error";
/**
 * Server configuration
 */
export interface ServerConfig {
    port: number;
    baseUrl?: string;
    packageDir?: string;
    configDir?: string;
    usersFile?: string;
    trustedProxies?: string[];
    realm?: string;
    logLevel?: LogLevel;
    authMode?: AuthMode;
    sessionSecret?: string;
    passwordMinScore?: number;
    passwordStrengthCheck?: boolean;
    duplicatePackagePolicy?: DuplicatePackagePolicy;
}
/**
 * Extend Fastify types for AbortSignal support
 */
declare module "fastify" {
    interface FastifyRequest {
        abortSignal: AbortSignal;
    }
}
//# sourceMappingURL=types.d.ts.map