import type { HexAddress, HexString, HexString32, ProviderPair, ProofSequence } from '../types.js';
import { ZKSyncProver } from './ZKSyncProver.js';
import { Contract } from 'ethers/contract';
import { type RollupDeployment, type RollupCommit, AbstractRollup } from '../rollup.js';
export type ZKSyncConfig = {
    DiamondProxy: HexAddress;
};
export type ZKSyncCommit = RollupCommit<ZKSyncProver> & {
    readonly stateRoot: HexString32;
    readonly abiEncodedBatch: HexString;
};
export declare class ZKSyncRollup extends AbstractRollup<ZKSyncCommit> {
    static readonly mainnetConfig: RollupDeployment<ZKSyncConfig>;
    static readonly sepoliaConfig: RollupDeployment<ZKSyncConfig>;
    static readonly zeroMainnetConfig: RollupDeployment<ZKSyncConfig>;
    static readonly zeroSepoliaConfig: RollupDeployment<ZKSyncConfig>;
    static readonly abstractSepoliaConfig: RollupDeployment<ZKSyncConfig>;
    readonly DiamondProxy: Contract;
    constructor(providers: ProviderPair, config: ZKSyncConfig);
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<ZKSyncCommit>;
    encodeWitness(commit: ZKSyncCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=ZKSyncRollup.d.ts.map