import type { Address, Instruction, TransactionSigner } from '@solana/kit';
export interface ValidatorAnnounceInitData {
    mailbox: Address;
    localDomain: number;
}
export interface ValidatorAnnounceData {
    /** 20-byte EVM validator address (H160) */
    validator: Uint8Array;
    storageLocation: string;
    /** 65-byte ECDSA signature */
    signature: Uint8Array;
}
/**
 * Computes the replay ID for an announcement = keccak256(validator || storageLocation).
 */
export declare function computeReplayId(validator: Uint8Array, storageLocation: string): Uint8Array;
/**
 * Builds a validator announce Init instruction.
 *
 * Account layout (from Rust init_instruction):
 *  0. [signer]   Payer
 *  1. [readonly]  System program
 *  2. [writable]  ValidatorAnnounce PDA
 */
export declare function buildInitValidatorAnnounceInstruction(programId: Address, payer: TransactionSigner, data: ValidatorAnnounceInitData): Promise<Instruction>;
/**
 * Builds a validator Announce instruction.
 *
 * Account layout (from Rust process_announce):
 *  0. [signer]   Payer
 *  1. [readonly]  System program
 *  2. [readonly]  ValidatorAnnounce PDA
 *  3. [writable]  ValidatorStorageLocations PDA
 *  4. [writable]  ReplayProtection PDA
 */
export declare function buildAnnounceInstruction(programId: Address, payer: TransactionSigner, data: ValidatorAnnounceData): Promise<Instruction>;
//# sourceMappingURL=validator-announce-tx.d.ts.map