import { BaseCoin as CoinConfig } from '@bitgo/statics';
import { TransactionBuilder } from './transactionBuilder';
import { Transaction } from './transaction';
import { UnsignedTransaction } from '@substrate/txwrapper-core';
import { TransactionType } from '../baseCoin';
import { proxyType } from './iface';
import { BaseAddress } from '../baseCoin/iface';
export declare class WalletInitializationBuilder extends TransactionBuilder {
    protected _delegate: string;
    protected _proxyType: proxyType;
    protected _delay: string;
    constructor(_coinConfig: Readonly<CoinConfig>);
    /**
     * Register a proxy account for the sender that is able to make calls on its behalf.
     *
     * @returns {UnsignedTransaction} an unsigned Dot transaction
     *
     * @see https://polkadot.js.org/docs/substrate/extrinsics/#proxy
     */
    protected buildTransaction(): UnsignedTransaction;
    protected get transactionType(): TransactionType;
    /**
     * The account to delegate auth to.
     *
     * @param {BaseAddress} owner
     * @returns {WalletInitializationBuilder} This builder.
     *
     * @see https://wiki.polkadot.network/docs/learn-proxies#why-use-a-proxy
     */
    owner(owner: BaseAddress): this;
    /**
     * The proxy type to add.
     *
     * @param {proxyType} proxyType
     * @returns {WalletInitializationBuilder} This builder.
     *
     * @see https://wiki.polkadot.network/docs/learn-proxies#proxy-types
     */
    type(proxyType: proxyType): this;
    /**
     * The number of blocks that an announcement must be in place for.
     * before the corresponding call may be dispatched.
     * If zero, then no announcement is needed.
     * TODO: move to the validity window method once it has been standardized
     *
     * @param {string} delay
     * @returns {WalletInitializationBuilder} This transfer builder.
     *
     * @see https://wiki.polkadot.network/docs/learn-proxies#time-delayed-proxies
     */
    delay(delay: string): this;
    /** @inheritdoc */
    validateRawTransaction(rawTransaction: string): void;
    /** @inheritdoc */
    protected fromImplementation(rawTransaction: string): Transaction;
    /** @inheritdoc */
    validateTransaction(_: Transaction): void;
    private validateFields;
}
//# sourceMappingURL=walletInitializationBuilder.d.ts.map