import { BigNumberish } from '@ethersproject/bignumber';
import { NetworkMonitor } from './network-monitor';
import { HealthCheck } from '../base-commands/healthcheck';
export interface OperatorJobDetails {
    pod: number;
    blockTimes: number;
    operator: string;
    startBlock: number;
    startTimestamp: BigNumberish;
    fallbackOperators: number[];
}
export interface OperatorJob {
    network: string;
    hash: string;
    payload: string;
    targetTime: number;
    gasLimit: BigNumberish;
    gasPrice: BigNumberish;
    jobDetails: OperatorJobDetails;
}
export interface OperatorStatus {
    address: string;
    active: {
        [key: string]: boolean;
    };
    currentPod: {
        [key: string]: number;
    };
    podIndex: {
        [key: string]: number;
    };
    podSize: {
        [key: string]: number;
    };
}
export declare abstract class OperatorJobAwareCommand extends HealthCheck {
    networkMonitor: NetworkMonitor;
    operatorStatus: OperatorStatus;
    operatorJobs: {
        [key: string]: OperatorJob;
    };
    getTargetTime(network: string, jobDetails: OperatorJobDetails): number;
    decodeOperatorJob(network: string, operatorJobHash: string, operatorJobPayload: string, tags: (string | number)[]): Promise<OperatorJob | undefined>;
    updateJobTimes(): void;
    updateOperatorStatus(network: string): Promise<void>;
    checkJobStatus(operatorJobHash: string): Promise<void>;
}
