export interface EffectiveModuleSpecificationConfig { readonly orCombinedClauses: ReadonlyArray; } export interface EffectiveModuleSpecificationClauseConfig { readonly andCombinedModules: ReadonlyArray; } export declare class EffectiveModuleSpecification { readonly orCombinedClauses: ReadonlyArray; constructor(config: EffectiveModuleSpecificationConfig); static readonly EMPTY: EffectiveModuleSpecification; /** * Checks if a field / type with this module specification is included in a model where the given modules are selected */ includedIn(selectedModules: ReadonlyArray | ReadonlySet): boolean; /** * Sorts the clauses by name and removes duplicates and redundant clauses (e.g. ["a", "a && b"] is simplified to ["a"]) */ simplify(): EffectiveModuleSpecification; orCombineWith(other: EffectiveModuleSpecification): EffectiveModuleSpecification; andCombineWith(other: EffectiveModuleSpecification): EffectiveModuleSpecification; /** * Checks if this specification states that the object is not included in any module */ isEmpty(): boolean; toString(): string; } export declare class EffectiveModuleSpecificationClause { readonly andCombinedModules: ReadonlyArray; constructor(config: EffectiveModuleSpecificationClauseConfig); /** * Checks all the modules in this clause are present in the given selected modules */ includedIn(selectedModules: ReadonlyArray | ReadonlySet): boolean; /** * Sorts the modules by name and removes duplicates */ normalize(): EffectiveModuleSpecificationClause; toString(): string; }