import { Base } from '@ariestools/sdk';
import type { AccountInstance, Payload, PayloadBuilderOptions } from '@xyo-network/sdk';
import type { AllowedBlockPayload, ChainId, TransactionFeesBigInt } from '@xyo-network/xl1-protocol/protocol-lib';
/** Builder for constructing Transaction instances. */
export declare class TransactionBuilder<TPayload extends Payload> extends Base<Omit<PayloadBuilderOptions, 'schema'>> {
    private _blockRange?;
    private _chain?;
    private _elevatedPayloads;
    private _fees;
    private _payloads;
    private _signers;
    /** Creates an instance with the supplied configuration. */
    constructor(options?: Omit<PayloadBuilderOptions, 'schema'>);
    /** Builds a read-only gateway, or a mutation-capable gateway when a signer is supplied. */
    build(): Promise<[{
        schema: "network.xyo.boundwitness" & {
            readonly __schema: true;
        };
        addresses: (import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }))[];
        payload_hashes: import("@ariestools/sdk").BrandedHash[];
        payload_schemas: import("@xyo-network/sdk").BrandedSchema<string>[];
        previous_hashes: (import("@ariestools/sdk").BrandedHash | null)[];
        $signatures: import("@ariestools/sdk").BrandedHex[];
        nbf: import("@xyo-network/xl1-protocol/protocol-lib").XL1BlockNumber;
        exp: import("@xyo-network/xl1-protocol/protocol-lib").XL1BlockNumber;
        fees: {
            base: import("@ariestools/sdk").BrandedHex;
            gasLimit: import("@ariestools/sdk").BrandedHex;
            gasPrice: import("@ariestools/sdk").BrandedHex;
            priority: import("@ariestools/sdk").BrandedHex;
        };
        chain: import("@ariestools/sdk").BrandedHex;
        from: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        });
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
        script?: string[] | undefined;
    }, {
        [x: string]: unknown;
        schema: import("@xyo-network/sdk").BrandedSchema<string>;
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
    }[]]>;
    /** Returns the chain result exposed by this provider. */
    chain(chain: ChainId): this;
    /** Returns the dry run result exposed by this provider. */
    dryRun(): Promise<[{
        schema: "network.xyo.boundwitness" & {
            readonly __schema: true;
        };
        addresses: (import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }))[];
        payload_hashes: import("@ariestools/sdk").BrandedHash[];
        payload_schemas: import("@xyo-network/sdk").BrandedSchema<string>[];
        previous_hashes: (import("@ariestools/sdk").BrandedHash | null)[];
        $signatures: import("@ariestools/sdk").BrandedHex[];
        nbf: import("@xyo-network/xl1-protocol/protocol-lib").XL1BlockNumber;
        exp: import("@xyo-network/xl1-protocol/protocol-lib").XL1BlockNumber;
        fees: {
            base: import("@ariestools/sdk").BrandedHex;
            gasLimit: import("@ariestools/sdk").BrandedHex;
            gasPrice: import("@ariestools/sdk").BrandedHex;
            priority: import("@ariestools/sdk").BrandedHex;
        };
        chain: import("@ariestools/sdk").BrandedHex;
        from: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        });
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
        script?: string[] | undefined;
    }, {
        [x: string]: unknown;
        schema: import("@xyo-network/sdk").BrandedSchema<string>;
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
    }[]]>;
    /** Returns the elevated payload result exposed by this provider. */
    elevatedPayload(payload?: AllowedBlockPayload): this;
    /** Returns the elevated payloads result exposed by this provider. */
    elevatedPayloads(payloads?: AllowedBlockPayload[]): this;
    /** Returns the estimated minimum fees result exposed by this provider. */
    estimatedMinimumFees(): Promise<TransactionFeesBigInt>;
    /** Returns the fees result exposed by this provider. */
    fees(fees: TransactionFeesBigInt): this;
    /** Returns the payload result exposed by this provider. */
    payload(payload?: TPayload): this;
    /** Returns the payloads result exposed by this provider. */
    payloads(payloads?: TPayload[]): this;
    /** Returns the range result exposed by this provider. */
    range(blockRange: [number, number]): this;
    /** Removes elevated payload from this instance. */
    removeElevatedPayload(payload: AllowedBlockPayload): Promise<this>;
    /** Removes payload from this instance. */
    removePayload(payload: TPayload): Promise<this>;
    /** Returns the signer result exposed by this provider. */
    signer(signer?: AccountInstance): this;
    /** Returns the signers result exposed by this provider. */
    signers(signers?: (AccountInstance | null)[]): this;
}
//# sourceMappingURL=TransactionBuilder.d.ts.map