import { EventEmitter } from 'events'; import { FeathersApplication, ServiceMixin, Service, ServiceOptions, ServiceInterface, Application, FeathersService, ApplicationHookOptions } from './declarations'; export declare class Feathers extends EventEmitter implements FeathersApplication { services: Services; settings: Settings; mixins: ServiceMixin>[]; version: string; _isSetup: boolean; protected registerHooks: (this: any, allHooks: any) => any; constructor(); get(name: L): Settings[L]; set(name: L, value: Settings[L]): this; configure(callback: (this: this, app: this) => void): this; defaultService(location: string): ServiceInterface; service(location: L): FeathersService; protected _setup(): Promise; get setup(): () => Promise; set setup(value: () => Promise); protected _teardown(): Promise; get teardown(): () => Promise; set teardown(value: () => Promise); use(path: L, service: keyof any extends keyof Services ? ServiceInterface | Application : Services[L], options?: ServiceOptions): this; unuse(location: L): Promise>; hooks(hookMap: ApplicationHookOptions): this; }