import type { Hash } from '@ariestools/sdk';
import type { Payload, Schema, WithHashMeta } from '@xyo-network/sdk';
import type { AllowedBlockPayload, BaseContext, HydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol/protocol-lib';
import type { HydratedTransactionInstance, SignatureInstance, TransactionFeesInstance } from '../../protocol-sdk/index.js';
/** Context for hydrated transaction wrapper operations. */
export interface HydratedTransactionWrapperContext extends BaseContext {
}
/** Wrapper for a hydrated transaction providing access to payloads, signatures, fees, and validation. */
export declare class HydratedTransactionWrapper<T extends HydratedTransactionWithHashMeta> implements HydratedTransactionInstance<T> {
    /** Payload carried by the transport envelope. */
    data: T;
    /** Fee limits and prices applied to the transaction. */
    fees: TransactionFeesInstance;
    protected context: HydratedTransactionWrapperContext;
    protected payloadsCache: WithHashMeta<AllowedBlockPayload & T[1][number]>[];
    private _signatureCache;
    protected constructor(data: T, context?: HydratedTransactionWrapperContext);
    /** Returns the bound witness result exposed by this provider. */
    get boundWitness(): T[0];
    /**
     * A copy of the transaction that excludes non-elevated payloads — i.e. only what ends up on chain.
     */
    get elevated(): HydratedTransactionWithHashMeta;
    /** Returns the elevated payload count result exposed by this provider. */
    get elevatedPayloadCount(): number;
    /** Returns the elevated payloads result exposed by this provider. */
    get elevatedPayloads(): WithHashMeta<AllowedBlockPayload & T[1][number]>[];
    /** Returns the external payloads result exposed by this provider. */
    get externalPayloads(): Record<Hash, Schema | Payload>;
    /** Returns the from result exposed by this provider. */
    get from(): import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    });
    /** Returns the payload count result exposed by this provider. */
    get payloadCount(): number;
    /** Returns the payloads result exposed by this provider. */
    get payloads(): WithHashMeta<WithHashMeta<T[1][number]>>[];
    /** Returns the private external payloads result exposed by this provider. */
    get privateExternalPayloads(): Record<Hash, Schema>;
    /** Returns the public external payloads result exposed by this provider. */
    get publicExternalPayloads(): Payload[];
    /** Returns the signature count result exposed by this provider. */
    get signatureCount(): number;
    /** Returns the signatures result exposed by this provider. */
    get signatures(): SignatureInstance[];
    /** Returns the parse result exposed by this provider. */
    static parse<T extends HydratedTransactionWithHashMeta>(transaction: T, validate?: boolean): Promise<HydratedTransactionInstance<[
        T[0],
        T[1][number][]
    ]>>;
    /** Returns the elevated payload result exposed by this provider. */
    elevatedPayload(index: number): WithHashMeta<AllowedBlockPayload & T[1][number]> | undefined;
    /** Returns the gas required result exposed by this provider. */
    gasRequired(): bigint;
    /** Returns the payload result exposed by this provider. */
    payload(index: number): WithHashMeta<AllowedBlockPayload & T[1][number]>;
    /** Returns the reward result exposed by this provider. */
    reward(): bigint;
    /** Returns the signature result exposed by this provider. */
    signature(index: number): SignatureInstance | undefined;
    /** Validates  and returns the validation result. */
    validate(): Promise<Error[]>;
    protected parse(validate?: boolean): Promise<HydratedTransactionInstance<[WithHashMeta<T[0]>, WithHashMeta<T[1][number]>[]]>>;
}
//# sourceMappingURL=HydratedTransaction.d.ts.map