import { Exception } from '../types';
/**
 * HttpException 是lin中所有其他异常的基类
 *
 * ```js
 * // 实例化一个默认的HttpException
 * const ex = new HttpException();
 *
 * // 实例化一个带参的HttpException
 * // 如果只传 code 会通过 CodeMessage.getMessage(code) 方法获取 message
 * const ex = new HttpException({ code: 10010 });
 *
 * // 也可以是其他参数
 * const ex = new HttpException({ message: CodeMessage.getMessage(10010) });
 *
 * // 也可以指定所有参数
 * const ex = new HttpException({ code: 10010, message: CodeMessage.getMessage(10010) });
 *
 * // 也可以只穿一个 code 作为参数
 * // 如果只传 code 会通过 CodeMessage.getMessage(code) 方法获取 message
 * const ex = new HttpException(10010)
 * ```
 */
export declare class HttpException extends Error {
    /**
     * http 状态码
     */
    status: number;
    /**
     * 返回的信息内容
     */
    message: string;
    /**
     * 特定的错误码
     */
    code: number;
    fields: string[];
    /**
     * 构造函数
     * @param ex 可选参数，通过{}的形式传入 / 也可以直接传 code
     */
    constructor(ex?: Exception | number);
    protected exceptionHandler(ex?: Exception | number): void;
}
/**
 * 成功
 */
export declare class Success extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: number | Exception);
}
/**
 * 失败
 */
export declare class Failed extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception | number);
}
/**
 * 认证失败
 */
export declare class AuthFailed extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 资源不存在
 */
export declare class NotFound extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 参数错误
 */
export declare class ParametersException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 令牌失效或损坏
 */
export declare class InvalidTokenException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 令牌过期
 */
export declare class ExpiredTokenException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 服务器未知错误
 */
export declare class UnknownException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 字段重复
 */
export declare class RepeatException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 禁止操作
 */
export declare class Forbidden extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 请求方法不允许
 */
export declare class MethodNotAllowed extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * refresh token 获取失败
 */
export declare class RefreshException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 文件体积过大
 */
export declare class FileTooLargeException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 文件数量过多
 */
export declare class FileTooManyException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 文件扩展名不符合规范
 */
export declare class FileExtensionException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
/**
 * 请求过于频繁，请稍后重试
 */
export declare class LimitException extends HttpException {
    status: number;
    message: string;
    code: number;
    constructor(ex?: Exception);
}
