import { ICounter } from "../count/index";
import { ILogger, LogLevel } from "../log/index";
import { ITimer } from "../time/ITimer";
import { ITelemetry } from "../telemetry/index";
import { TelemetryObject } from "../telemetry/index";
import { PerformanceObject } from "../time/index";
import { LogObject } from "../log/index";
export declare type ConsoleLevel = LogLevel | "time" | "telemetry";
export declare class ConsoleManager<TLog = LogObject, TTime = PerformanceObject, TTelemetry = TelemetryObject> {
    readonly Counters: ICounter[];
    readonly Loggers: ILogger[];
    readonly Timers: ITimer[];
    readonly Telemetry: ITelemetry[];
    constructor(c: Console);
    /**
     * 计数
     * @param label
     * @param value
     */
    count(label?: string, value?: number): void;
    /**
     * 记录调试日志
     * @param action - 操作
     * @param content - 记录内容
     * @param correlationId - 关联ID
     * @param optionalParams - 其它参数
     */
    debug(action: string, content?: any, correlationId?: string, ...optionalParams: any[]): void;
    debug(data: TLog): void;
    /**
     * 记录日志信息
     * @param action - 操作
     * @param content - 记录内容
     * @param correlationId - 关联ID
     * @param optionalParams - 其它参数
     */
    info(action: string, content?: any, correlationId?: string, ...optionalParams: any[]): void;
    info(data: TLog): void;
    /**
     * 记录警告日志
     * @param action - 操作
     * @param content - 记录内容
     * @param correlationId - 关联ID
     * @param optionalParams - 其它参数
     */
    warn(action: string, content?: any, correlationId?: string, ...optionalParams: any[]): void;
    warn(data: TLog): void;
    /**
     * 记录错误日志
     * @param action - 操作
     * @param content - 记录内容
     * @param correlationId - 关联ID
     * @param optionalParams - 其它参数
     */
    error(action: string, content?: any, correlationId?: string, ...optionalParams: any[]): void;
    error(data: TLog): void;
    /**
     *
     * @param level 日志级别
     * @param action 日志操作
     * @param content 内容
     * @param correlationId 关联ID
     * @param optionalParams ... 其它参数
     */
    log(level: ConsoleLevel, action: string, content?: any, correlationId?: string, ...optionalParams: any[]): void;
    /**
     * 记录telemetry信息
     * @param action - 操作
     * @param parameter - 参数
     * @param extension - 附加数据
     * @param userInfo - 客户端信息
     * @param args - 其它参数...
     */
    telemetry(action: string, parameter?: any, extension?: any, userInfo?: any, ...args: any[]): void;
    telemetry(data: TTelemetry): void;
    /**
     * 一次记录耗时间(性能)日志
     * @param action - 操作
     * @param duration - 耗时
     * @param parameter - 参数
     * @param request_id - 请求ID
     * @param result - 操作结果
     * @param args - 其它参数
     */
    timeLog(action: string, duration: number, parameter?: any, requestId?: string, result?: string | any, ...args: any): void;
    timeLog(data: TTime): void;
    /**
     * 开始计时
     * @param label - 计时标签
     * @param context - 保存上下文信息
     */
    time(label: string, context?: Partial<TTime>): void;
    /**
     * 结束计时
     * @param label - 计时标签
     * @param context - 保存上下文信息
     */
    timeEnd(label: string, context?: Partial<TTime>): void;
    /**
     * 设置统一的上下文信息
     */
    setContext<T extends (keyof TTelemetry) & (keyof TTime) & (keyof TLog)>(key: T, value: TLog[T]): void;
}
export interface Console {
    assert(condition?: boolean, message?: string, ...data: any[]): void;
    clear(): void;
    count(label?: string): void;
    debug(message?: any, ...optionalParams: any[]): void;
    error(message?: any, ...optionalParams: any[]): void;
    group(groupTitle?: string, ...optionalParams: any[]): void;
    groupCollapsed(groupTitle?: string, ...optionalParams: any[]): void;
    groupEnd(): void;
    info(message?: any, ...optionalParams: any[]): void;
    log(message?: any, ...optionalParams: any[]): void;
    time(label?: string): void;
    timeEnd(label?: string): void;
    timeStamp(label?: string): void;
    warn(message?: any, ...optionalParams: any[]): void;
}
//# sourceMappingURL=console.d.ts.map