import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
import type { DeployedValidatorAnnounceAddress, RawValidatorAnnounceConfig } from '@hyperlane-xyz/provider-sdk/validator-announce';
import type { SvmSigner } from '../clients/signer.js';
import type { AnnotatedSvmTransaction, SvmReceipt, SvmRpc } from '../types.js';
import type { SvmValidatorAnnounceConfig } from './types.js';
export declare class SvmValidatorAnnounceReader implements ArtifactReader<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress> {
    protected readonly rpc: SvmRpc;
    constructor(rpc: SvmRpc);
    read(address: string): Promise<ArtifactDeployed<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>>;
}
export declare class SvmValidatorAnnounceWriter extends SvmValidatorAnnounceReader implements ArtifactWriter<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress> {
    private readonly config;
    private readonly svmSigner;
    constructor(config: SvmValidatorAnnounceConfig, rpc: SvmRpc, svmSigner: SvmSigner);
    create(artifact: ArtifactNew<RawValidatorAnnounceConfig>): Promise<[
        ArtifactDeployed<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>,
        SvmReceipt[]
    ]>;
    update(_artifact: ArtifactDeployed<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>): Promise<AnnotatedSvmTransaction[]>;
}
//# sourceMappingURL=validator-announce.d.ts.map