import { AbstractRollup, type RollupCommit, type RollupDeployment } from '../rollup.js';
import type { HexAddress, HexString, HexString32, ProofSequence, ProviderPair } from '../types.js';
import { StarknetProver } from './StarknetProver.js';
import { Contract, EventLog } from 'ethers/contract';
export type StarknetConfig = {
    Rollup: HexAddress;
};
export type StarknetCommit = RollupCommit<StarknetProver> & {
    readonly rlpEncodedL1Block: HexString;
    readonly accountProof: HexString;
    readonly storageProof: HexString;
    readonly commitTx: HexString32;
};
export declare class StarknetRollup extends AbstractRollup<StarknetCommit> {
    static readonly mainnetConfig: RollupDeployment<StarknetConfig>;
    static readonly sepoliaConfig: RollupDeployment<StarknetConfig>;
    readonly Rollup: Contract;
    constructor(providers: ProviderPair, config: StarknetConfig);
    findStateUpdate(l2BlockNumber: bigint): Promise<EventLog>;
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(commit: StarknetCommit): Promise<bigint>;
    protected _fetchCommit(index: bigint): Promise<StarknetCommit>;
    encodeWitness(commit: StarknetCommit, proofSeq: ProofSequence): HexString;
    windowFromSec(_sec: number): number;
}
//# sourceMappingURL=StarknetRollup.d.ts.map