import { Comparator, Selector, Transformer } from '../components/selectors'; /** * Selects an observable from the store, and attaches it to the decorated * property. * * ```ts * import { select } from '@angular-redux/store'; * * class SomeClass { * @select(['foo','bar']) foo$: Observable * } * ``` * * @param selector * A selector function, property name string, or property name path * (array of strings/array indices) that locates the store data to be * selected * * @param comparator Function used to determine if this selector has changed. */ export declare function select(selector?: Selector, comparator?: Comparator): PropertyDecorator; /** * Selects an observable using the given path selector, and runs it through the * given transformer function. A transformer function takes the store * observable as an input and returns a derived observable from it. That derived * observable is run through distinctUntilChanges with the given optional * comparator and attached to the store property. * * Think of a Transformer as a FunctionSelector that operates on observables * instead of values. * * ```ts * import { select$ } from 'angular-redux/store'; * * export const debounceAndTriple = obs$ => obs$ * .debounce(300) * .map(x => 3 * x); * * class Foo { * @select$(['foo', 'bar'], debounceAndTriple) * readonly debouncedFooBar$: Observable; * } * ``` */ export declare function select$(selector: Selector, transformer: Transformer, comparator?: Comparator): PropertyDecorator;