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> {
    data: T;
    fees: TransactionFeesInstance;
    protected context: HydratedTransactionWrapperContext;
    protected payloadsCache: WithHashMeta<AllowedBlockPayload & T[1][number]>[];
    private _signatureCache;
    protected constructor(data: T, context?: HydratedTransactionWrapperContext);
    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;
    get elevatedPayloadCount(): number;
    get elevatedPayloads(): WithHashMeta<AllowedBlockPayload & T[1][number]>[];
    get externalPayloads(): Record<Hash, Schema | Payload>;
    get from(): import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
        readonly __hex: true;
    } & {
        readonly __address: true;
    });
    get payloadCount(): number;
    get payloads(): WithHashMeta<WithHashMeta<T[1][number]>>[];
    get privateExternalPayloads(): Record<Hash, Schema>;
    get publicExternalPayloads(): Payload[];
    get signatureCount(): number;
    get signatures(): SignatureInstance[];
    static parse<T extends HydratedTransactionWithHashMeta>(transaction: T, validate?: boolean): Promise<HydratedTransactionInstance<[
        T[0],
        T[1][number][]
    ]>>;
    elevatedPayload(index: number): WithHashMeta<AllowedBlockPayload & T[1][number]> | undefined;
    gasRequired(): bigint;
    payload(index: number): WithHashMeta<AllowedBlockPayload & T[1][number]>;
    reward(): bigint;
    signature(index: number): SignatureInstance | undefined;
    validate(): Promise<Error[]>;
    protected parse(validate?: boolean): Promise<HydratedTransactionInstance<[WithHashMeta<T[0]>, WithHashMeta<T[1][number]>[]]>>;
}
//# sourceMappingURL=HydratedTransaction.d.ts.map