import * as send from 'koa-send'; import { IContext } from '../typings/IContext'; import { DOWNLOAD_PATH, VIEW_PATH, CALLBACK_FIELD } from '../utils/consts'; export declare type TResultJsonData = { [key: string]: any; }; export declare type TResultJsonpData = { [CALLBACK_FIELD]: string; callbackField: string; [key: string]: any; }; export declare type TResultViewData = { [VIEW_PATH]: string; [key: string]: any; }; export declare type TResultStreamData = { fileName?: string; data: any; }; export interface TResultDownData extends send.SendOptions { [DOWNLOAD_PATH]: string; } export declare type TResultRedirectData = { url: string; alt?: string; }; export interface IResults { done: (ctx: IContext, data: any) => void; send: (ctx: IContext, data: any) => void; json: (ctx: IContext, data: TResultJsonData) => void; jsonp: (ctx: IContext, data: TResultJsonpData) => void; view: (ctx: IContext, data: TResultViewData) => void; stream: (ctx: IContext, data: TResultStreamData) => void; download: (ctx: IContext, data: TResultDownData) => void; redirect: (ctx: IContext, data: TResultRedirectData) => void; } export declare type TResultType = keyof IResults; export interface IResult { type: TResultType | string; data?: any; status?: number; }