import { Account, Address, InnerTransaction, LockFundsTransaction, PublicAccount, QueryParams, SignedTransaction, Transaction, TransactionAnnounceResponse, TransactionInfo, TransactionStatus, TransferTransaction } from 'nem2-sdk';
import { Observable } from 'rxjs';
import { Initiator } from './Initiator';
export interface IReadyTransaction {
    initiator: Initiator;
    transaction: Transaction;
}
interface IAnnounceTransactionList {
    initiator: Initiator;
    innerTransaction: InnerTransaction;
}
export declare class ApostilleHttp {
    static createLockFundsTransaction(signedAggregateBondedTransaction: SignedTransaction): LockFundsTransaction;
    announceList: SignedTransaction[];
    private transactionHttp;
    private accountHttp;
    private blockHttp;
    private listener;
    private unannouncedTransactions;
    constructor(url: string);
    announce(signedTransaction: SignedTransaction): Promise<TransactionAnnounceResponse>;
    announceAggregateBonded(cosignatoryAccount: PublicAccount, signedAggregateBondedTransaction: SignedTransaction, signedLockFundsTransaction: SignedTransaction): Promise<TransactionAnnounceResponse>;
    isCreated(publicAccount: PublicAccount): Promise<boolean>;
    getCosignatories(address: Address): Promise<PublicAccount[]>;
    isOwned(address: Address): Promise<boolean>;
    getCreationTransactionInfo(publicAccount: PublicAccount): Promise<TransactionInfo>;
    getCreationTransaction(publicAccount: PublicAccount): Promise<TransferTransaction>;
    fetchAllTransactions(publicAccount: PublicAccount): Observable<Transaction[]>;
    fetchAllTransactionsSync(publicAccount: PublicAccount): Promise<Transaction[]>;
    _transactions(publicAccount: PublicAccount, queryParams?: QueryParams | undefined): Observable<Transaction[]>;
    _unconfirmedTransactions(publicAccount: PublicAccount, queryParams?: QueryParams | undefined): Observable<Transaction[]>;
    addTransaction(readyTransaction: IReadyTransaction): number;
    getIncompleteTransactions(): IReadyTransaction[];
    hasIncompleteTransactions(): boolean;
    reduceInitiatorList(initiators: Initiator[]): Account[];
    aggregateAndSign(innerTransactions: IAnnounceTransactionList[], generationHash: string): SignedTransaction[];
    announceAll(): Observable<SignedTransaction[] | TransactionAnnounceResponse | TransactionStatus[]>;
    private fetchGenerationHash;
    private confirmedListener;
}
export {};
