import { AbstractRollup, type RollupCommit, type RollupDeployment } from '../rollup.js';
import type { HexAddress, HexString, HexString32, ProviderPair, ProofSequence } from '../types.js';
import { Contract } from 'ethers/contract';
import { EthProver } from '../eth/EthProver.js';
import { CachedValue } from '../cached.js';
export type TaikoConfig = {
    TaikoL1: HexAddress;
};
export type TaikoCommit = RollupCommit<EthProver> & {
    readonly parentHash: HexString32;
};
export declare class TaikoRollup extends AbstractRollup<TaikoCommit> {
    readonly commitSpan: number;
    static readonly mainnetConfig: RollupDeployment<TaikoConfig>;
    static readonly heklaConfig: RollupDeployment<TaikoConfig>;
    readonly TaikoL1: Contract;
    readonly commitStep: CachedValue<bigint>;
    constructor(providers: ProviderPair, config: TaikoConfig, commitSpan?: number);
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: TaikoCommit): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<TaikoCommit>;
    encodeWitness(commit: TaikoCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=TaikoRollup.d.ts.map