import { Address, Checkpoint, CheckpointWithId, HexString, S3CheckpointWithId, SignatureLike } from './types.js';
export interface ValidatorConfig {
    address: string;
    localDomain: number;
    mailbox: string;
}
/**
 * Utilities for validators to construct and verify checkpoints.
 */
export declare class BaseValidator {
    protected readonly config: ValidatorConfig;
    constructor(config: ValidatorConfig);
    get address(): string;
    announceDomainHash(): string;
    static checkpointDomainHash(localDomain: number, merkle_tree_address: Address): string;
    static message(checkpoint: Checkpoint, messageId: HexString): string;
    static messageHash(checkpoint: Checkpoint, messageId: HexString): Uint8Array;
    static recoverAddressFromCheckpoint(checkpoint: Checkpoint, signature: SignatureLike, messageId: HexString): Address;
    static recoverAddressFromCheckpointWithId({ checkpoint, message_id }: CheckpointWithId, signature: SignatureLike): Address;
    static recoverAddress({ value, signature }: S3CheckpointWithId): Address;
    matchesSigner(checkpoint: Checkpoint, signature: SignatureLike, messageId: HexString): boolean;
}
//# sourceMappingURL=validator.d.ts.map