import { AbstractRollup, RollupCommit, type RollupDeployment } 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> {
    static readonly mainnetConfig: RollupDeployment<OPReverseConfig>;
    static readonly baseMainnetConfig: RollupDeployment<OPReverseConfig>;
    readonly L1Block: Contract;
    readonly commitStep: bigint;
    constructor(providers: ProviderPair, config: OPReverseConfig, commitStep?: number);
    private align;
    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