import type { RollupDeployment } from '../rollup.js';
import type { HexAddress, HexString32, ProviderPair } from '../types.js';
import { AbstractOPRollup, type AbstractOPCommit } from './AbstractOPRollup.js';
import { Contract } from 'ethers/contract';
export declare const OUTPUT_FINDER_ABI: any;
export type OPConfig = {
    OptimismPortal: HexAddress;
    OutputFinder: HexAddress;
};
export type OPCommit = AbstractOPCommit & {
    output: ABIOutputTuple;
};
type ABIOutputTuple = {
    outputRoot: HexString32;
    timestamp: bigint;
    l2BlockNumber: bigint;
};
export declare class OPRollup extends AbstractOPRollup<OPCommit> {
    minAgeSec: number;
    static readonly blastMainnnetConfig: RollupDeployment<OPConfig>;
    static readonly fraxtalMainnetConfig: RollupDeployment<OPConfig>;
    static readonly zoraMainnetConfig: RollupDeployment<OPConfig>;
    static readonly mantleMainnetConfig: RollupDeployment<OPConfig>;
    static readonly modeMainnetConfig: RollupDeployment<OPConfig>;
    static readonly cyberMainnetConfig: RollupDeployment<OPConfig>;
    static readonly redstoneMainnetConfig: RollupDeployment<OPConfig>;
    static readonly shapeMainnetConfig: RollupDeployment<OPConfig>;
    static readonly opBNBMainnetConfig: RollupDeployment<OPConfig>;
    static readonly celoAlfajoresConfig: RollupDeployment<OPConfig>;
    static readonly worldMainnetConfig: RollupDeployment<OPConfig>;
    static readonly zircuitMainnetConfig: RollupDeployment<OPConfig>;
    static readonly zircuitSepoliaConfig: RollupDeployment<OPConfig>;
    static readonly liskMainnetConfig: RollupDeployment<OPConfig>;
    static readonly liskSepoliaConfig: RollupDeployment<OPConfig>;
    static readonly mintMainnetConfig: RollupDeployment<OPConfig>;
    static readonly mintSepoliaConfig: RollupDeployment<OPConfig>;
    static readonly bobMainnetConfig: RollupDeployment<OPConfig>;
    static readonly bobSepoliaConfig: RollupDeployment<OPConfig>;
    readonly OptimismPortal: HexAddress;
    readonly OutputFinder: Contract;
    constructor(providers: ProviderPair, config: OPConfig, minAgeSec?: number);
    get unfinalized(): boolean;
    fetchOutput(index: bigint): Promise<ABIOutputTuple | undefined>;
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<{
        output: ABIOutputTuple;
        index: bigint;
        prover: import("../index.js").EthProver;
        blockHash: import("../types.js").HexString;
        stateRoot: import("../types.js").HexString;
        passerRoot: import("../types.js").HexString;
    }>;
    isCommitStillValid(commit: OPCommit): Promise<boolean>;
    windowFromSec(sec: number): number;
}
export {};
//# sourceMappingURL=OPRollup.d.ts.map