import { type RollupDeployment, type RollupCommit, AbstractRollup } from '../rollup.js';
import type { HexAddress, HexString, HexString32, ProviderPair, ProofSequence } from '../types.js';
import { Contract } from 'ethers/contract';
import { LineaProver } from './LineaProver.js';
export type LineaConfig = {
    L1MessageService: HexAddress;
    SparseMerkleProof: HexAddress;
    firstCommitV3?: bigint;
};
export type LineaCommit = RollupCommit<LineaProver> & {
    readonly stateRoot: HexString32;
    readonly prevStateRoot: HexString32;
    readonly startIndex: bigint | undefined;
};
export declare class LineaRollup extends AbstractRollup<LineaCommit> {
    static readonly mainnetConfig: RollupDeployment<LineaConfig>;
    static readonly sepoliaConfig: RollupDeployment<LineaConfig>;
    readonly firstCommitV3: bigint | undefined;
    readonly L1MessageService: Contract;
    shomeiTimeout: number;
    constructor(providers: ProviderPair, config: LineaConfig);
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: LineaCommit): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<LineaCommit>;
    encodeWitness(commit: LineaCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=LineaRollup.d.ts.map