import { InjectorService } from "@tsed/di";
import { HandlerMetadata } from "../../mvc/models/HandlerMetadata";
import { PlatformContext } from "./PlatformContext";
/**
 * @ignore
 */
export interface HandlerContextOptions {
    $ctx: PlatformContext;
    metadata: HandlerMetadata;
    args: any[];
    err?: any;
}
/**
 * @ignore
 */
export declare enum HandlerContextStatus {
    PENDING = "pending",
    CANCELED = "canceled",
    RESOLVED = "resolved",
    REJECTED = "rejected"
}
export declare class HandlerContext {
    status: HandlerContextStatus;
    metadata: HandlerMetadata;
    $ctx: PlatformContext;
    err: any;
    args: any[];
    private resolves;
    private rejects;
    private promise;
    constructor({ $ctx, err, metadata, args }: HandlerContextOptions);
    get injector(): InjectorService;
    get container(): import("@tsed/di").LocalsContainer<any>;
    get request(): TsED.Request;
    get response(): TsED.Response;
    get isDone(): boolean;
    /**
     * Return the original request instance.
     */
    getRequest<T = any>(): T;
    /**
     * Return the original response instance.
     */
    getResponse<T = any>(): T;
    /**
     *
     */
    callHandler(): Promise<any>;
    reject(er: any): void;
    resolve(data?: any): void;
    next(error?: any): void;
    destroy(): void;
    cancel(): any;
    handle(process: any): any;
}
