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 {
    blockPayloads: AllowedBlockPayload[];
    chainId: ChainId;
    chainStepRewardAddress?: XyoAddress;
    previousBlockNumber?: XL1BlockNumber;
    protocol?: number;
    signers: AccountInstance[];
    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 {
    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 {
    previousBlockHash: Hash;
    previousBlockNumber: XL1BlockNumber;
    previousStepHashes: Hash[];
    stepRewardPoolBalance: AttoXL1;
}
/** Type guard that checks if a value is a valid BuildNextBlockOptions. */
export declare const isBuildNextBlockOptions: (value: unknown) => value is BuildNextBlockOptions;
/** BuildBlockOptions type. */
export type BuildBlockOptions = BuildGenesisBlockOptions | BuildNextBlockOptions;
//# sourceMappingURL=BuildBlockOptions.d.ts.map