import { AbstractRollup, RollupCommit, type RollupDeployment } from '../rollup.js';
import type { HexAddress, HexString, ProviderPair, ProofSequence } from '../types.js';
import { Contract } from 'ethers/contract';
import { ZKEVMProver } from './ZKEVMProver.js';
export type ZKEVMConfig = {
    RollupManager: HexAddress;
};
export type ZKEVMCommit = RollupCommit<ZKEVMProver>;
export declare class ZKEVMRollup extends AbstractRollup<ZKEVMCommit> {
    readonly RollupManager: Contract;
    readonly rollupID: number;
    static readonly mainnetConfig: RollupDeployment<ZKEVMConfig>;
    static readonly sepoliaConfig: RollupDeployment<ZKEVMConfig>;
    static create(providers: ProviderPair, config: ZKEVMConfig): Promise<ZKEVMRollup>;
    private constructor();
    fetchLatestCommitIndex(): Promise<bigint>;
    private fetchBatchStateRoot;
    private fetchBatchInfo;
    protected _fetchCommit(index: bigint): Promise<ZKEVMCommit>;
    encodeWitness(commit: ZKEVMCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=ZKEVMRollup.d.ts.map