import { SystemServices } from '../../services'; import StoreFront from '../../storefront'; export declare const CORE: unique symbol; export declare const core: (target: any) => void; export declare abstract class BaseService implements Service { protected app: StoreFront; protected opts: T; constructor(app: StoreFront, opts: T); abstract init(services: SystemServices): void; } export interface Service { init(services: SystemServices): void; } export declare namespace Service { function isCore(service: any): boolean; namespace Constructor { type Map = { [key: string]: Constructor; }; } interface Constructor { new (app: StoreFront, config: any): Service; } type Map = { [key: string]: Service; }; type Options = Service.Constructor | T | false; } export default Service;