import { AbstractRollup, type RollupCommit } from '../rollup.js';
import type { EncodedProof, HexAddress, HexString, ProviderPair, ProofSequence } from '../types.js';
import { EthProver } from '../eth/EthProver.js';
import { Contract } from 'ethers/contract';
export declare const L1_BLOCK_ABI: any;
export type OPReverseConfig = {
    L1Block?: HexAddress;
};
export type ReverseOPCommit = RollupCommit<EthProver> & {
    readonly rlpEncodedL1Block: HexString;
    readonly rlpEncodedL2Block: HexString;
    readonly accountProof: EncodedProof;
    readonly storageProof: EncodedProof;
};
export declare class ReverseOPRollup extends AbstractRollup<ReverseOPCommit> {
    readonly commitStep: number;
    readonly L1Block: Contract;
    constructor(providers: ProviderPair, config: OPReverseConfig & Record<string, unknown>, // relax
    commitStep?: number);
    findL2Block(l1BlockNumber: bigint): Promise<bigint>;
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: ReverseOPCommit): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<ReverseOPCommit>;
    encodeWitness(commit: ReverseOPCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=ReverseOPRollup.d.ts.map