import { FluxTag, TypeMap } from '../tags/tag'; import * as clone from 'clone'; import * as debounce from 'debounce'; import { Navigation, RangeRefinement, ValueRefinement } from 'groupby-api'; import * as riot from 'riot'; export { clone, debounce }; export declare type Refinement = ValueRefinement & RangeRefinement; export declare const LOCATION: { href: () => string; setSearch: (search: any) => any; getSearch: () => string; pathname: () => string; replace: (url: any) => void; assign: (url: any) => void; }; export declare const WINDOW: { addEventListener: (event: any, cb: any) => void; Image: () => HTMLImageElement; }; export declare function findSearchBox(): HTMLInputElement; export declare function findTag(tagName: string): riot.TagElement; export declare function toRefinement(ref: Refinement, nav: Navigation): any; export declare function displayRefinement(ref: Refinement): string; export declare function refinementMatches(lhs: Refinement, rhs: Refinement): boolean; export declare function checkNested(obj: any, ...keys: string[]): boolean; export declare function getParam(param: string): string | null; export declare function unless(obj: any, ...defaultObjs: any[]): any; export declare function getPath(obj: any, path?: string): any; /** * Example: * ({x: 3, y: 4, h: 8}, {z: 'x', i: 'h'}) -> {z: 3, i: 8} * * N.B. It removes keys that do not appear in the mapping */ export declare function remap(obj: any, mapping?: any): any; export declare function checkBooleanAttr(attribute: string, opts: any, defaultValue?: boolean): boolean; export declare function checkNumericAttr(attribute: string, opts: any, defaultValue?: number): any; export declare function scopeCss(tag: string, selector: string): string; export declare function collectServiceConfigs(tag: FluxTag, services: string[]): any[]; export declare function coerceAttributes(opts: any, types: TypeMap): {};