module entitas { export interface IMatcher { id : number ; indices : number [ ] ; matches ( entity ) ; } export interface ICompoundMatcher extends IMatcher { allOfIndices : number [ ] ; anyOfIndices : number [ ] ; noneOfIndices : number [ ] ; } export interface INoneOfMatcher extends ICompoundMatcher { } export interface IAnyOfMatcher extends ICompoundMatcher { noneOf ( ... args ) : INoneOfMatcher ; } export interface IAllOfMatcher extends ICompoundMatcher { anyOf ( ... args ) : IAnyOfMatcher ; noneOf ( ... args ) : INoneOfMatcher ; } }