import { TransactionType } from '../enums/TransactionType.js';
import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
import { P2TRPayment, Psbt } from '@btc-vision/bitcoin';
import { TransactionBuilder } from './TransactionBuilder.js';
import { TapLeafScript } from '../interfaces/Tap.js';
import { Address } from '../../keypair/Address.js';
import { ChallengeSolution } from '../../epoch/ChallengeSolution.js';
import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
export declare class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
    static readonly MAXIMUM_CONTRACT_SIZE: number;
    type: TransactionType.DEPLOYMENT;
    protected readonly challenge: ChallengeSolution;
    protected readonly epochChallenge: IP2WSHAddress;
    protected readonly _contractAddress: Address;
    protected tapLeafScript: TapLeafScript | null;
    private readonly deploymentVersion;
    private targetScriptRedeem;
    private leftOverFundsScriptRedeem;
    private readonly compiledTargetScript;
    private readonly scriptTree;
    private deploymentGenerator;
    private readonly contractSeed;
    private readonly bytecode;
    private readonly calldata?;
    private readonly contractSigner;
    private readonly _contractPubKey;
    private readonly randomBytes;
    private _computedAddress;
    constructor(parameters: IDeploymentParameters);
    get contractPubKey(): string;
    get contractAddress(): Address;
    get p2trAddress(): string;
    getRndBytes(): Buffer;
    getChallenge(): ChallengeSolution;
    getContractAddress(): string;
    protected contractSignerXOnlyPubKey(): Buffer;
    protected buildTransaction(): Promise<void>;
    protected signInputsWalletBased(transaction: Psbt): Promise<void>;
    protected signInputs(transaction: Psbt): Promise<void>;
    protected generateScriptAddress(): P2TRPayment;
    protected generateTapData(): P2TRPayment;
    private generateFeatures;
    private verifyCalldata;
    private verifyBytecode;
    private getContractSeed;
    private customFinalizer;
    private getPubKeys;
    private generateRedeemScripts;
    private getLeafScript;
    private getScriptTree;
}
