/// <reference types="@types/node" />
import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { Response } from './response';
import { Operation } from './operation';
export declare type KeyType = 'Memo' | 'Posting' | 'Active';
export declare type Currency = 'STEEM' | 'SBD';
export declare type DelegationUnit = 'VESTS' | 'SP';
export declare class SteemKeychainService {
    private ngZone;
    constructor(ngZone: NgZone);
    readonly steemKeychainAvailable: boolean;
    requestHandshake(): Observable<Response>;
    requestVerifyKey(account: string, encryptedMessage: string, keyType: KeyType): Observable<Response>;
    requestSignBuffer(account: string, message: string | Buffer, keyType: KeyType): Observable<Response>;
    requestBroadcast(account: string, operations: Operation[], keyType: KeyType): Observable<Response>;
    requestSignedCall(account: string, method: string, params: any, keyType: KeyType): Observable<Response>;
    requestPost(parentAuthor: string, parentPermlink: string, author: string, permlink: string, title: string, body: string, jsonMetadata?: string, options?: string): Observable<Response>;
    requestVote(voter: string, author: string, permlink: string, weight: number): Observable<Response>;
    requestCustomJson(account: string, displayMessage: string, id: string, customJson: string, key?: KeyType): Observable<Response>;
    requestTransfer(from: string, to: string, amount: number, memo: string, currency: Currency, enforce?: boolean): Observable<Response>;
    requestDelegation(delegator: string, delegatee: string, amount: number, unit: DelegationUnit): Observable<Response>;
    call(method: string, args: any[], callbackIndex?: number): Observable<Response>;
}
