import { IEosNodeConfig } from '../../configs';
export interface ISignPlayerOptions {
    maxFailureRate?: number;
    maxContinuousFailure?: number;
    failureRateThreshold?: number;
    responseIntervalThreshold?: number;
    responseIntervalDecline?: number;
    maxCallPromiseExceedTime?: number;
    cleaningTimeInterval?: number;
    revivalTimeInterval?: number;
}
export declare class NodeStat {
    error_counts: number;
    total_counts: number;
    continuous_failure: number;
    enabled: boolean;
    response_interval: number;
    revival_time: number;
    cleaning_time: number;
    record_total_counts?: number;
    record_total_success?: number;
    record_total_fuse?: number;
    record_total_failed?: number;
}
export declare class NodeStatMgr {
    readonly _nodeConfigs: IEosNodeConfig[];
    readonly _options: ISignPlayerOptions;
    protected _nodeStatus: NodeStat[];
    _currentNodeIndex: number;
    constructor(_nodeConfigs: IEosNodeConfig[], _options: ISignPlayerOptions);
    initNodeStatus(): void;
    setTheBestNodeToCurrent(): void;
    getNodeConf(index: number): IEosNodeConfig;
    getNodeStat(index: number): NodeStat;
    tryClean(index: number): NodeStat;
    getCurNodeConf(): IEosNodeConfig;
    getCurNodeStat(): NodeStat;
    markSendSuccess(startTimestamp: number): NodeStat;
    markSendFailed(startTimestamp: number): NodeStat;
}
