import type { Hash } from '@ariestools/sdk';
import type { AccountInstance, XyoAddress } from '@xyo-network/sdk';
import type { AllowedBlockPayload, AttoXL1, ChainId, SignedHydratedTransaction, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
/** Options for BaseBuildBlock. */
export interface BaseBuildBlockOptions {
    /** block Payloads configuration or state exposed by this contract. */
    blockPayloads: AllowedBlockPayload[];
    /** Identifier for the chain associated with this value. */
    chainId: ChainId;
    /** chain Step Reward Address configuration or state exposed by this contract. */
    chainStepRewardAddress?: XyoAddress;
    /** previous Block Number configuration or state exposed by this contract. */
    previousBlockNumber?: XL1BlockNumber;
    /** protocol configuration or state exposed by this contract. */
    protocol?: number;
    /** signers configuration or state exposed by this contract. */
    signers: AccountInstance[];
    /** txs configuration or state exposed by this contract. */
    txs: SignedHydratedTransaction[];
}
/** Type guard that checks if a value is a valid BaseBuildBlockOptions. */
export declare const isBaseBuildBlockOptions: (value: unknown) => value is BaseBuildBlockOptions;
/** Options for BuildGenesisBlock. */
export interface BuildGenesisBlockOptions extends BaseBuildBlockOptions {
    /** previous Block Hash configuration or state exposed by this contract. */
    previousBlockHash: null;
}
/** Type guard that checks if a value is a valid BuildGenesisBlockOptions. */
export declare const isBuildGenesisBlockOptions: (value: unknown) => value is BuildGenesisBlockOptions;
/** Options for BuildNextBlock. */
export interface BuildNextBlockOptions extends BaseBuildBlockOptions {
    /** previous Block Hash configuration or state exposed by this contract. */
    previousBlockHash: Hash;
    /** previous Block Number configuration or state exposed by this contract. */
    previousBlockNumber: XL1BlockNumber;
    /** previous Step Hashes configuration or state exposed by this contract. */
    previousStepHashes: Hash[];
    /** step Reward Pool Balance configuration or state exposed by this contract. */
    stepRewardPoolBalance: AttoXL1;
}
/** Type guard that checks if a value is a valid BuildNextBlockOptions. */
export declare const isBuildNextBlockOptions: (value: unknown) => value is BuildNextBlockOptions;
/** Options controlling Build Block behavior. */
export type BuildBlockOptions = BuildGenesisBlockOptions | BuildNextBlockOptions;
//# sourceMappingURL=BuildBlockOptions.d.ts.map