import { Observable } from "../Observable"; import { Property } from "../Property"; export declare type Combineable = Observable | T; export declare function combineAsArray(observables?: Array | T>): Property; export declare function combineAsArray(o1: Observable | A): Property<[A]>; export declare function combineAsArray(o1: Observable | A, o2: Observable | B): Property<[A, B]>; export declare function combineAsArray(o1: Observable | A, o2: Observable | B, o3: Observable | C): Property<[A, B, C]>; export declare function combineAsArray(o1: Observable | A, o2: Observable | B, o3: Observable | C, o4: Observable | D): Property<[A, B, C, D]>; export declare function combineAsArray(o1: Observable | A, o2: Observable | B, o3: Observable | C, o4: Observable | D, o5: Observable | E): Property<[A, B, C, D, E]>; export declare function combineAsArray(o1: Observable | A, o2: Observable | B, o3: Observable | C, o4: Observable | D, o5: Observable | E, o6: Observable | F): Property<[A, B, C, D, E, F]>; export declare function combineAsArray(...observables: Array>): Property; export declare type CombinedTemplate = { [K in keyof O]: O[K] extends Observable ? I : O[K] extends Record ? CombinedTemplate : O[K]; }; export declare function combineTemplate(template: T): Property>; export declare function combineWith(f: (a: A) => R, observables: [Combineable]): Property; export declare function combineWith(f: (a: A, b: B) => R, observables: [Combineable, Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C) => R, observables: [Combineable, Combineable, Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C, d: D) => R, observables: [Combineable, Combineable, Combineable, Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C, d: D, e: E) => R, observables: [Combineable, Combineable, Combineable, Combineable, Combineable]): Property; export declare function combineWith(f: (a: A, b: B, c: C, d: D, e: E, f: F) => R, observables: [Combineable, Combineable, Combineable, Combineable, Combineable, Combineable]): Property; export declare function _combine(f: (vals: A[]) => B, observables: Array | A>): Property;