import type { AuthConf, ConfigYaml, FlagsConfig, HttpsConf, ListenAddress, LoggerConfigItem, Notifications, PackageAccessYaml, PublishOptions, RateLimit, Security, UpLinkConf, WebConf } from '@verdaccio/types';
/**
 * Helper configuration builder constructor, used to build the configuration for testing or
 * programatically creating a configuration.
 */
export default class ConfigBuilder {
    private config;
    constructor(config?: Partial<ConfigYaml>);
    static build(config?: Partial<ConfigYaml>): ConfigBuilder;
    addPackageAccess(pattern: string, pkgAccess: PackageAccessYaml): this;
    addUplink(id: string, uplink: UpLinkConf): this;
    addSecurity(security: Partial<Security>): this;
    addAuth(auth: Partial<AuthConf>): this;
    addLogger(log: LoggerConfigItem): this;
    addStorage(storage: string | object): this;
    addWeb(web: Partial<WebConf>): this;
    addListen(listen: ListenAddress): this;
    addHttps(https: HttpsConf): this;
    addPublish(publish: Partial<PublishOptions>): this;
    addFlags(flags: Partial<FlagsConfig>): this;
    addNotify(notify: Notifications | Notifications[]): this;
    addMiddlewares(middlewares: any): this;
    addFilters(filters: any): this;
    addMaxBodySize(maxBodySize: string): this;
    addUserRateLimit(rateLimit: RateLimit): this;
    addUrlPrefix(urlPrefix: string): this;
    addI18n(i18n: ConfigYaml['i18n']): this;
    addUserAgent(userAgent: string): this;
    addHttpProxy(httpProxy: string): this;
    addHttpsProxy(httpsProxy: string): this;
    addNoProxy(noProxy: string): this;
    addPlugins(plugins: string): this;
    addNotifications(notifications: Notifications): this;
    getConfig(): ConfigYaml;
    getAsYaml(): string;
}
