///
import { EventEmitter } from 'events';
import { Controller } from '../routers/Controller';
import { PluginGlobal } from '../plugins/PluginGlobal';
import { I18nMessage } from '../i18n';
import { Composer } from '../utils/compose';
export declare abstract class Application extends EventEmitter {
readonly i18n: I18nMessage;
protected readonly routesPath: string[];
protected readonly composer: Composer;
protected readonly noGlobalComposer: Composer;
protected readonly pluginGlobal: PluginGlobal;
constructor(routesPath: string | string[], locale: string);
get locale(): string;
getPaths(): string[];
/**
* Useful for testing scenario.
*/
protected append(routes: Controller | Controller[]): this;
protected createI18n(locale: string): import("@i18n-chain/node").I18nInstance<{
required: (string | {
attribute: undefined;
})[];
json: {
invalid: (string | {
attribute: undefined;
})[];
};
array: {
invalid: (string | {
attribute: undefined;
})[];
tooShort: (string | {
attribute: undefined;
minItemLength: undefined;
})[];
tooLong: (string | {
attribute: undefined;
maxItemLength: undefined;
})[];
betweenLength: (string | {
attribute: undefined;
minItemLength: undefined;
maxItemLength: undefined;
})[];
};
string: {
invalid: (string | {
attribute: undefined;
})[];
tooShort: (string | {
attribute: undefined;
minLength: undefined;
})[];
tooLong: (string | {
attribute: undefined;
maxLength: undefined;
})[];
betweenLength: (string | {
attribute: undefined;
minLength: undefined;
maxLength: undefined;
})[];
};
range: {
invalid: (string | {
attribute: undefined;
ranges: (values: (string | number)[]) => string;
})[];
};
number: {
invalid: (string | {
attribute: undefined;
})[];
integer: (string | {
attribute: undefined;
})[];
tooSmall: (string | {
attribute: undefined;
min: undefined;
})[];
tooLarge: (string | {
attribute: undefined;
max: undefined;
})[];
between: (string | {
attribute: undefined;
min: undefined;
max: undefined;
})[];
};
url: {
invalid: (string | {
attribute: undefined;
})[];
};
boolean: {
invalid: (string | {
attribute: undefined;
})[];
};
file: {
invalid: (string | {
attribute: undefined;
})[];
tooLarge: (string | {
attribute: undefined;
maxSize: undefined;
})[];
mimeType: (string | {
attribute: undefined;
})[];
};
}, import("@i18n-chain/node").Locale<{
required: (string | {
attribute: undefined;
})[];
json: {
invalid: (string | {
attribute: undefined;
})[];
};
array: {
invalid: (string | {
attribute: undefined;
})[];
tooShort: (string | {
attribute: undefined;
minItemLength: undefined;
})[];
tooLong: (string | {
attribute: undefined;
maxItemLength: undefined;
})[];
betweenLength: (string | {
attribute: undefined;
minItemLength: undefined;
maxItemLength: undefined;
})[];
};
string: {
invalid: (string | {
attribute: undefined;
})[];
tooShort: (string | {
attribute: undefined;
minLength: undefined;
})[];
tooLong: (string | {
attribute: undefined;
maxLength: undefined;
})[];
betweenLength: (string | {
attribute: undefined;
minLength: undefined;
maxLength: undefined;
})[];
};
range: {
invalid: (string | {
attribute: undefined;
ranges: (values: (string | number)[]) => string;
})[];
};
number: {
invalid: (string | {
attribute: undefined;
})[];
integer: (string | {
attribute: undefined;
})[];
tooSmall: (string | {
attribute: undefined;
min: undefined;
})[];
tooLarge: (string | {
attribute: undefined;
max: undefined;
})[];
between: (string | {
attribute: undefined;
min: undefined;
max: undefined;
})[];
};
url: {
invalid: (string | {
attribute: undefined;
})[];
};
boolean: {
invalid: (string | {
attribute: undefined;
})[];
};
file: {
invalid: (string | {
attribute: undefined;
})[];
tooLarge: (string | {
attribute: undefined;
maxSize: undefined;
})[];
mimeType: (string | {
attribute: undefined;
})[];
};
}>>;
protected searchRoutes(routesPath: string[]): void;
protected parseControllers(modules: Record): void;
protected abstract getControllerInstance(): new (...args: any[]) => Controller;
protected abstract inspect(): object;
protected abstract toJSON(): object;
}