import type { Address, GetContractReturnType, WalletClient, WriteContractParameters } from 'viem';
import { type TransactionResult, type PopulatedTransaction, TransactionOptions } from '../core/index.js';
import type { NoTxOptions } from '../core/types.js';
import { StethAbi } from './abi/steth.js';
import type { StakeProps, StakeLimitResult, StakeResult } from './types.js';
import { LidoSDKModule } from '../common/class-primitives/sdk-module.js';
export declare class LidoSDKStake extends LidoSDKModule {
    private static TRANSFER_SIGNATURE;
    private static TRANSFER_SHARES_SIGNATURE;
    contractAddressStETH(): Promise<Address>;
    getContractStETH(): Promise<GetContractReturnType<typeof StethAbi, WalletClient>>;
    stakeEth(props: StakeProps): Promise<TransactionResult<StakeResult>>;
    stakeEthSimulateTx(props: StakeProps): Promise<WriteContractParameters>;
    getStakeLimitInfo(): Promise<StakeLimitResult>;
    stakeEthEstimateGas(props: NoTxOptions<StakeProps>, options?: TransactionOptions): Promise<bigint>;
    private submitParseEvents;
    private validateStakeLimit;
    private stakeEthEncodeData;
    stakeEthPopulateTx(props: StakeProps): Promise<PopulatedTransaction>;
    private parseProps;
}
//# sourceMappingURL=stake.d.ts.map