import { LinkAction } from 'symbol-sdk'; import { Logger } from '../logger'; import { VotingKeyAccount } from '../service'; export declare type KeyAccount = { publicKey: string; }; export interface GenericNodeAccount { remote?: KeyAccount; vrf?: KeyAccount; voting?: VotingKeyAccount[]; } export declare type ConfirmUnlink = (accountName: string, alreadyLinkedAccount: T, print: (account: T) => string) => Promise; export declare class LinkTransactionGenericFactory { private readonly logger; private readonly confirmUnlink; private readonly params; constructor(logger: Logger, confirmUnlink: ConfirmUnlink, params: { unlink: boolean; }); createGenericTransactions(nodeName: string, currentMainAccountKeys: GenericNodeAccount, nodeAccount: GenericNodeAccount, latestFinalizedBlockEpoch: number, remoteTransactionFactory: (keyAccount: KeyAccount, action: LinkAction) => AccountKL, vrfTransactionFactory: (keyAccount: KeyAccount, action: LinkAction) => VRFKL, votingKeyTransactionFactory: (account: VotingKeyAccount, action: LinkAction) => VotingKL): Promise<(AccountKL | VRFKL | VotingKL)[]>; addVotingKeyLinkTransactions(linkedVotingKeyAccounts: VotingKeyAccount[], votingKeyFiles: VotingKeyAccount[], nodeName: string, lastKnownNetworkEpoch: number, transactionFactory: (transaction: VotingKeyAccount, action: LinkAction) => T, print: (account: VotingKeyAccount) => string): Promise; addVotingKeyUnlinkTransactions(linkedVotingKeyAccounts: VotingKeyAccount[], votingKeyFiles: VotingKeyAccount[], nodeName: string, transactionFactory: (transaction: VotingKeyAccount, action: LinkAction) => T, print: (account: VotingKeyAccount) => string): Promise; static overlapsVotingAccounts(x: VotingKeyAccount, y: VotingKeyAccount): boolean; private addTransaction; } //# sourceMappingURL=LinkTransactionGenericFactory.d.ts.map