import type { HexString, HexString32, ProofSequence, Provider } from './types.js';
import type { AbstractProver, LatestProverFactory } from './vm.js';
import { AbstractRollup, type RollupCommit } from './rollup.js';
import { CachedValue } from './cached.js';
import { SigningKey } from 'ethers/crypto';
export type TrustedCommit<P extends AbstractProver> = RollupCommit<P> & {
    readonly stateRoot: HexString32;
    readonly signature: HexString;
    readonly signedAt: number;
};
export declare class TrustedRollup<P extends AbstractProver> extends AbstractRollup<TrustedCommit<P>> {
    #private;
    readonly factory: LatestProverFactory<P>;
    readonly signingKey: SigningKey;
    readonly latest: CachedValue<TrustedCommit<P>>;
    constructor(provider2: Provider, factory: LatestProverFactory<P>, signingKey: SigningKey);
    get signerAddress(): any;
    get unfinalized(): boolean;
    fetchLatestCommitIndex(): Promise<bigint>;
    protected _fetchParentCommitIndex(_commit: RollupCommit<P>): Promise<bigint>;
    protected _fetchCommit(_index: bigint): Promise<TrustedCommit<P>>;
    encodeWitness(commit: TrustedCommit<P>, proofSeq: ProofSequence): HexString;
    windowFromSec(sec: number): number;
}
//# sourceMappingURL=TrustedRollup.d.ts.map