import { type RollupCommit, type RollupDeployment, AbstractRollup } from '../rollup.js';
import type { HexAddress, HexString, ProviderPair, ProofSequence } from '../types.js';
import { Contract } from 'ethers/contract';
import { EthProver } from '../eth/EthProver.js';
import { CachedValue } from '../cached.js';
export type EuclidConfig = {
    ScrollChain: HexAddress;
};
export type EuclidCommit = RollupCommit<EthProver> & {
    readonly l1BlockNumber: number;
};
export declare class EuclidRollup extends AbstractRollup<EuclidCommit> {
    readonly beaconAPI: string;
    static readonly mainnetConfig: RollupDeployment<EuclidConfig>;
    static readonly sepoliaConfig: RollupDeployment<EuclidConfig>;
    readonly ScrollChain: Contract;
    readonly beaconConfig: CachedValue<{
        genesisTime: bigint;
        secondsPerSlot: bigint;
    }>;
    constructor(providers: ProviderPair, config: EuclidConfig, beaconAPI: string);
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: EuclidCommit): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<EuclidCommit>;
    encodeWitness(commit: EuclidCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=EuclidRollup.d.ts.map