import { Observable } from '@stated-library/interface';
declare type Obs<T> = Observable<T>;
declare type ValueOf<O> = O extends Observable<infer T> ? T : never;
declare function mapState<O1 extends Obs<any>, R>(stream$: O1, mapFunc: (val: ValueOf<O1>) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, R>(streams$: [O1], mapFunc: (vals: [ValueOf<O1>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, R>(streams$: [O1, O2], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, R>(streams$: [O1, O2, O3], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, R>(streams$: [O1, O2, O3, O4], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, O5 extends Obs<any>, R>(streams$: [O1, O2, O3, O4, O5], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>, ValueOf<O5>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, O5 extends Obs<any>, O6 extends Obs<any>, R>(streams$: [O1, O2, O3, O4, O5, O6], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>, ValueOf<O5>, ValueOf<O6>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, O5 extends Obs<any>, O6 extends Obs<any>, O7 extends Obs<any>, R>(streams$: [O1, O2, O3, O4, O5, O6, O7], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>, ValueOf<O5>, ValueOf<O6>, ValueOf<O7>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, O5 extends Obs<any>, O6 extends Obs<any>, O7 extends Obs<any>, O8 extends Obs<any>, R>(streams$: [O1, O2, O3, O4, O5, O6, O7, O8], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>, ValueOf<O5>, ValueOf<O6>, ValueOf<O7>, ValueOf<O8>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, O5 extends Obs<any>, O6 extends Obs<any>, O7 extends Obs<any>, O8 extends Obs<any>, O9 extends Obs<any>, R>(streams$: [O1, O2, O3, O4, O5, O6, O7, O8, O9], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>, ValueOf<O5>, ValueOf<O6>, ValueOf<O7>, ValueOf<O8>, ValueOf<O9>]) => R): Observable<R>;
declare function mapState<O1 extends Obs<any>, O2 extends Obs<any>, O3 extends Obs<any>, O4 extends Obs<any>, O5 extends Obs<any>, O6 extends Obs<any>, O7 extends Obs<any>, O8 extends Obs<any>, O9 extends Obs<any>, O10 extends Obs<any>, R>(streams$: [O1, O2, O3, O4, O5, O6, O7, O8, O9, O10], mapFunc: (vals: [ValueOf<O1>, ValueOf<O2>, ValueOf<O3>, ValueOf<O4>, ValueOf<O5>, ValueOf<O6>, ValueOf<O7>, ValueOf<O8>, ValueOf<O9>, ValueOf<O10>]) => R): Observable<R>;
export default mapState;
export { mapState };
