/// <reference types="steem-js-alpha" />
import * as steem from "steem";
import { Api } from "./api/Api";
import { SteemOperationNumber } from "./blockchain/SteemOperationNumber";
import { SetRules } from "./protocol/SetRules";
import { Protocol } from "./protocol/Protocol";
import { WiseOperation } from "./protocol/WiseOperation";
import { ProggressCallback } from "./wise";
import { Ruleset } from "./protocol/Ruleset";
import { EffectuatedSetRules } from "./protocol/EffectuatedSetRules";
import { SetRulesForVoter } from "./protocol/SetRulesForVoter";
export declare class RulesUpdater {
    static getUploadRulesetsForVoterOps(protocol: Protocol, delegator: string, voter: string, rulesets_: Ruleset[]): steem.OperationWithDescriptor[];
    static uploadRulesetsForVoter(api: Api, protocol: Protocol, delegator: string, voter: string, rulesets_: Ruleset[], proggressCallback?: ProggressCallback): Promise<SteemOperationNumber>;
    static downloadAllRulesets(api: Api, delegator: string, moment?: SteemOperationNumber): Promise<EffectuatedSetRules[]>;
    static uploadAllRulesets(api: Api, protocol: Protocol, delegator: string, newRules: SetRulesForVoter[], proggressCallback: ProggressCallback): Promise<SteemOperationNumber | true>;
    static sendRules(voter: string, delegator: string, rulesCmd: SetRules): WiseOperation;
    static diffRules(a: SetRules, b: SetRules): boolean;
}
