import { SearchandiserConfig } from '../searchandiser'; import { FluxTag } from '../tags/tag'; import { Collections } from './collections'; import { Filter } from './filter'; import { Redirect } from './redirect'; import { Tracker } from './tracker'; import { Url } from './url'; import { FluxCapacitor } from 'groupby-api'; export interface LazyService { registered: FluxTag[]; register(tag: FluxTag): void; unregister(tag: FluxTag): void; } export interface LazyInitializer { lazyInit(): void; } export declare function lazyMixin(service: any): void; export interface Services { collections: Collections; filter: Filter; redirect: Redirect; tracker: Tracker; url: Url; } export interface Service { new (flux: FluxCapacitor, config: SearchandiserConfig, services: { [name: string]: any; }): { init: () => null; }; } export declare function initServices(flux: FluxCapacitor, config: SearchandiserConfig): Services; export declare function startServices(services: any): void;