import { Injector } from '@angular/core';
import { DynamicHooksSettings } from './settings';
import { ParserEntryResolver } from './parserEntryResolver';
import { HookParserEntry } from './parserEntry';
import { HookParser } from '../../interfacesPublic';
import { ParseOptions } from './options';
import * as i0 from "@angular/core";
/**
 * A helper class for resolving a combined settings object from all provided ones
 */
export declare class SettingsResolver {
    private parserEntryResolver;
    constructor(parserEntryResolver: ParserEntryResolver);
    /**
     * Takes all provided settings objects and combines them into a final settings object
     *
     * @param injector - The current injector
     * @param content - The content
     * @param allSettings - All settings provided anywhere
     * @param ancestorSettings - All ancestor settings
     * @param moduleSettings - The current module settings
     * @param localParsers - A list of local parsers
     * @param localOptions - A local options object
     * @param globalParsersBlacklist - A list of global parsers to blacklist
     * @param globalParsersWhitelist - A list of global parsers to whitelist
     */
    resolve(injector: Injector, content: any, allSettings: DynamicHooksSettings[] | null, ancestorSettings: DynamicHooksSettings[] | null, moduleSettings: DynamicHooksSettings | null, localParsers?: HookParserEntry[] | null, localOptions?: ParseOptions | null, globalParsersBlacklist?: string[] | null, globalParsersWhitelist?: string[] | null): {
        parsers: HookParser[];
        options: ParseOptions;
    };
    /**
     * Merges multiple settings objects, overwriting previous ones with later ones in the provided array
     *
     * @param settingsArray - The settings objects to merge
     */
    private mergeSettings;
    /**
     * Recursively merges two objects
     *
     * @param a - The target object to merge into
     * @param b - The other object being merged
     */
    private recursiveAssign;
    static ɵfac: i0.ɵɵFactoryDeclaration<SettingsResolver, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SettingsResolver>;
}
