import { type ZodTypeAny, z } from 'zod';
import { type L2Block } from './l2_block.js';
export type InBlock<T> = {
    l2BlockNumber: number;
    l2BlockHash: string;
    data: T;
};
export declare function randomInBlock<T>(data: T): InBlock<T>;
export declare function wrapInBlock<T>(data: T, block: L2Block): InBlock<T>;
export declare function inBlockSchemaFor<T extends ZodTypeAny>(schema: T): z.ZodObject<{
    data: T;
    l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
    l2BlockHash: z.ZodString;
}, "strip", ZodTypeAny, { [k in keyof z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    data: T;
    l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
    l2BlockHash: z.ZodString;
}>, any>]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
    data: T;
    l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
    l2BlockHash: z.ZodString;
}>, any>[k]; }, { [k_1 in keyof z.baseObjectInputType<{
    data: T;
    l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
    l2BlockHash: z.ZodString;
}>]: z.baseObjectInputType<{
    data: T;
    l2BlockNumber: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
    l2BlockHash: z.ZodString;
}>[k_1]; }>;
//# sourceMappingURL=in_block.d.ts.map