import { EthProver } from '../eth/EthProver.js';
import { type RollupCommit, AbstractRollup } from '../rollup.js';
import type { ProofSequence, HexString, Provider } from '../types.js';
import type { ArbitrumCommit, ArbitrumConfig, AbstractArbitrumRollup } from './ArbitrumRollup.js';
import { type NitroCommit, NitroRollup } from './NitroRollup.js';
import { GatewayRequest } from '../vm.js';
export type DoubleArbitrumCommit<C1> = RollupCommit<EthProver> & {
    readonly commit12: C1;
    readonly commit23: NitroCommit;
    readonly proofSeq12: ProofSequence;
};
export declare class DoubleArbitrumRollup<C1 extends ArbitrumCommit, R1 extends AbstractArbitrumRollup<C1>> extends AbstractRollup<DoubleArbitrumCommit<C1>> {
    readonly rollup12: R1;
    readonly rollup23: NitroRollup;
    readonly request: GatewayRequest;
    constructor(rollup12: R1, provider3: Provider, config23: ArbitrumConfig, minAgeBlocks23?: number);
    get unfinalized(): boolean;
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: DoubleArbitrumCommit<C1>): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<DoubleArbitrumCommit<C1>>;
    encodeWitness(commit: DoubleArbitrumCommit<C1>, proofSeq23: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=DoubleArbitrumRollup.d.ts.map