import ExplicitDependency from './ExplicitDependency';
import { Resolver } from './resolverFactory';
/**
 * A set of modules that can be queried for pertaining to a given subject.
 */
export default class ExplicitDependencySet {
    private resolve;
    private dependencies;
    /**
     * Cache storage to prevent unnecessary recalculation of the same list.
     * The same subject should result in the same list while this object exists.
     */
    private sortedBySubject;
    constructor(resolve: Resolver, names: string[]);
    /**
     * Gets a list of ExplicitDependencies in this set which pertain to the
     * subject (that is, their `package.json` has a valid key for the subject
     * that indicates a requireable file). Detects dependencies between the
     * packages that pertain and sorts the list in dependency order.
     */
    pertaining(subject: string): ExplicitDependency[];
    /**
     * Only add dependencies which can be resolved in the first place. If there
     * is a problem finding them, just skip them; they don't pertain!
     */
    private add;
}
