///
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;
}