import { AccountInfo, AccountLinkVotingKey, Deadline, Transaction, UInt64 } from 'symbol-sdk';
import { Addresses, ConfigPreset, NodeAccount } from '../model';
import { TransactionFactory } from './AnnounceService';
/**
 * params necessary to announce link transactions network.
 */
export declare type LinkParams = {
    target: string;
    password?: string;
    url: string;
    maxFee?: number | undefined;
    unlink: boolean;
    useKnownRestGateways: boolean;
    ready?: boolean;
    customPreset?: string;
};
export interface LinkServiceTransactionFactoryParams {
    presetData: ConfigPreset;
    nodeAccount: NodeAccount;
    mainAccountInfo: AccountInfo;
    deadline: Deadline;
    maxFee: UInt64;
    removeOldLinked?: boolean;
}
export declare class LinkService implements TransactionFactory {
    protected readonly params: LinkParams;
    static readonly defaultParams: LinkParams;
    private readonly configLoader;
    constructor(params: LinkParams);
    run(passedPresetData?: ConfigPreset | undefined, passedAddresses?: Addresses | undefined): Promise<void>;
    createTransactions({ presetData, nodeAccount, mainAccountInfo, deadline, maxFee, removeOldLinked, }: LinkServiceTransactionFactoryParams): Promise<Transaction[]>;
    static overlapsVotingAccounts(x: AccountLinkVotingKey, y: AccountLinkVotingKey): boolean;
    private addTransaction;
    private confirmUnlink;
}
