import { Account, PublicAccount, SignedTransaction, Transaction } from 'nem2-sdk';
import { HashFunction } from '../hash/HashFunction';
import { ApostillePublicAccount } from './../model/apostille/ApostillePublicAccount';
import { IReadyTransaction } from './ApostilleHttp';
export interface IMultisigInitiator {
    isComplete: boolean;
    cosignatories: Account[];
}
export declare enum initiatorAccountType {
    ACCOUNT = 0,
    MULTISIG_ACCOUNT = 1,
    HARDWARE_WALLET = 2
}
export declare class Initiator {
    readonly account: Account | PublicAccount;
    readonly accountType: initiatorAccountType;
    readonly multiSigAccount?: IMultisigInitiator | undefined;
    readonly complete: boolean;
    readonly publicAccount: PublicAccount;
    constructor(account: Account | PublicAccount, accountType?: initiatorAccountType, multiSigAccount?: IMultisigInitiator | undefined);
    sign(transaction: Transaction, generationHash: string): SignedTransaction;
    canSign(): boolean;
    signFileHash(apostille: ApostillePublicAccount, data: string, hashFunction?: HashFunction): IReadyTransaction;
    private _isAccountComplete;
    private _isMultiSigAccountComplete;
}
