///
import { EventEmitter } from 'events';
import type { BaseContext as KoaBaseContext } from 'koa';
import type { Composed, Middleware as ComposeMiddleware } from './compose';
import type { Request } from './request';
import type { Response } from './response';
export interface BaseContext extends KoaBaseContext {
app: Application;
redirect: (url: string) => Promise;
}
export interface DefaultState {
}
export interface DefaultSanitizedState {
}
export interface BaseRequest extends Request {
}
export interface BaseResponse extends Response {
}
export interface Context extends BaseContext {
request: BaseRequest;
response: BaseResponse;
req: never;
res: never;
originalUrl: string;
cookies: never;
state: DefaultState;
sanitizedState: DefaultSanitizedState;
respond?: boolean;
}
export declare type Middleware = ComposeMiddleware;
export default class Application extends EventEmitter {
middleware: Middleware[];
context: BaseContext;
request: BaseRequest;
response: BaseResponse;
callback?: Composed;
constructor();
use(fn: Middleware): this;
onerror(e: unknown): void;
run(url?: string): void;
createContext(): Context;
load(url: string): Promise;
}
//# sourceMappingURL=index.d.ts.map