// Type definitions for meteor-publish-composite // Project: https://github.com/englue/meteor-publish-composite // Definitions by: Robert Van Gorkom // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// declare interface PublishCompositeConfigN { children? : PublishCompositeConfigN[]; find( ...args : any[] ) : Mongo.Cursor; } declare interface PublishCompositeConfig4 { children? : PublishCompositeConfigN[]; find( arg4 : InLevel4, arg3 : InLevel3, arg2 : InLevel2, arg1 : InLevel1 ) : Mongo.Cursor; } declare interface PublishCompositeConfig3 { children? : PublishCompositeConfig4[]; find( arg3 : InLevel3, arg2 : InLevel2, arg1 : InLevel1 ) : Mongo.Cursor; } declare interface PublishCompositeConfig2 { children? : PublishCompositeConfig3[]; find( arg2 : InLevel2, arg1 : InLevel1 ) : Mongo.Cursor; } declare interface PublishCompositeConfig1 { children? : PublishCompositeConfig2[]; find( arg1 : InLevel1 ) : Mongo.Cursor; } declare interface PublishCompositeConfig { children? : PublishCompositeConfig1[]; find() : Mongo.Cursor; } declare namespace Meteor { function publishComposite( name : string, config : PublishCompositeConfig|PublishCompositeConfig[] ) : void; function publishComposite( name : string, configFunc : (...args : any[]) => PublishCompositeConfig|PublishCompositeConfig[] ) : void; } declare module 'meteor/meteor' { namespace Meteor { function publishComposite( name : string, config : PublishCompositeConfig|PublishCompositeConfig[] ) : void; function publishComposite( name : string, configFunc : (...args : any[]) => PublishCompositeConfig|PublishCompositeConfig[] ) : void; } }