/// <reference types="steem-js-alpha" />
import * as steem from "steem";
import { EffectuatedSetRules } from "../protocol/EffectuatedSetRules";
import { SteemOperationNumber } from "../blockchain/SteemOperationNumber";
import { Api } from "../api/Api";
import { Protocol } from "../protocol/Protocol";
import { EffectuatedWiseOperation } from "../protocol/EffectuatedWiseOperation";
import { UnifiedSteemTransaction } from "../blockchain/UnifiedSteemTransaction";
export declare class FakeApi extends Api {
    private protocol;
    private posts;
    private transactions;
    private dynamicGlobalProperties;
    private accounts;
    private blogEntries;
    private currentBlock;
    private pushedOperations;
    private fakeTime;
    private fakeDelayMs;
    private transactionsByBlock;
    constructor(protocol: Protocol, posts: steem.SteemPost[], dynamicGlobalProperties: steem.DynamicGlobalProperties, accounts: steem.AccountInfo[], transactions: UnifiedSteemTransaction[], blogEntries: steem.BlogEntry[]);
    static fromDataset(protocol: Protocol, dataset: FakeApi.Dataset): FakeApi;
    name(): string;
    loadPost(author: string, permlink: string): Promise<steem.SteemPost>;
    sendToBlockchain(operationsInTransaction: steem.OperationWithDescriptor[]): Promise<SteemOperationNumber>;
    loadRulesets(forWhom: {
        voter: string;
        delegator: string;
    }, at: SteemOperationNumber): Promise<EffectuatedSetRules[]>;
    getLastConfirmationMoment(delegator: string): Promise<SteemOperationNumber>;
    getAllWiseOperationsInBlock(blockNum: number, delegatorFilter?: string): Promise<EffectuatedWiseOperation[]>;
    getWiseOperationsRelatedToDelegatorInBlock(delegator: string, blockNum: number): Promise<EffectuatedWiseOperation[]>;
    getDynamicGlobalProperties(): Promise<steem.DynamicGlobalProperties>;
    getAccountInfo(username: string): Promise<steem.AccountInfo>;
    getWiseOperations(username: string, until: Date): Promise<EffectuatedWiseOperation[]>;
    getBlogEntries(username: string, startFrom: number, limit: number): Promise<steem.BlogEntry[]>;
    getCurrentBlockNum(): number;
    pushFakeBlock(): Promise<SteemOperationNumber>;
    /**
     * Returns all operations that were pushed using #sentToBlockchain() after initialization of FakeApi.
     */
    getPushedTransactions(): UnifiedSteemTransaction[];
    setFakeTime(fakeTime_: Date): void;
    setFakeDelayMs(delayMs: number): void;
}
export declare namespace FakeApi {
    interface Dataset {
        posts: steem.SteemPost[];
        dynamicGlobalProperties: steem.DynamicGlobalProperties;
        accounts: steem.AccountInfo[];
        transactions: UnifiedSteemTransaction[];
        blogEntries: steem.BlogEntry[];
    }
}
