import type { RollupDeployment } from '../rollup.js';
import type { HexAddress, ProviderPair } from '../types.js';
import { Contract } from 'ethers/contract';
import { AbstractOPRollup, type AbstractOPCommit } from './AbstractOPRollup.js';
export declare const PORTAL_ABI: any;
export declare const GAME_FINDER_ABI: any;
export declare const GAME_ABI: any;
export type OPFaultConfig = {
    OptimismPortal: HexAddress;
    GameFinder: HexAddress;
};
export type OPFaultCommit = AbstractOPCommit & {
    game: ABIFoundGame;
};
type ABIFoundGame = {
    gameType: bigint;
    created: bigint;
    gameProxy: HexAddress;
    l2BlockNumber: bigint;
    rootClaim: string;
};
export declare class OPFaultRollup extends AbstractOPRollup<OPFaultCommit> {
    minAgeSec: number;
    static readonly mainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly sepoliaConfig: RollupDeployment<OPFaultConfig>;
    static readonly baseMainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly baseSepoliaConfig: RollupDeployment<OPFaultConfig>;
    static readonly inkMainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly inkSepoliaConfig: RollupDeployment<OPFaultConfig>;
    static readonly unichainMainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly unichainSepoliaConfig: RollupDeployment<OPFaultConfig>;
    static readonly soneiumMainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly soneiumMinatoConfig: RollupDeployment<OPFaultConfig>;
    static readonly swellMainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly swellSepoliaConfig: RollupDeployment<OPFaultConfig>;
    static readonly worldMainnetConfig: RollupDeployment<OPFaultConfig>;
    static readonly celoMainnetConfig: RollupDeployment<OPFaultConfig>;
    readonly OptimismPortal: Contract;
    readonly GameFinder: Contract;
    gameTypes: number[];
    unfinalizedRootClaimTimeoutMs: number;
    constructor(providers: ProviderPair, config: OPFaultConfig, minAgeSec?: number);
    get gameTypeBitMask(): number;
    get unfinalized(): boolean;
    fetchRespectedGameType(): Promise<bigint>;
    private _ensureRootClaim;
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: OPFaultCommit): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<{
        game: ABIFoundGame;
        index: bigint;
        prover: import("../index.js").EthProver;
        blockHash: import("../types.js").HexString;
        stateRoot: import("../types.js").HexString;
        passerRoot: import("../types.js").HexString;
    }>;
    isCommitStillValid(commit: OPFaultCommit): Promise<boolean>;
    windowFromSec(sec: number): number;
}
export {};
//# sourceMappingURL=OPFaultRollup.d.ts.map