import { type Address } from '@solana/kit';
import type { ArtifactReader, ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact';
import { type DeployedHookArtifact, type IRawHookArtifactManager, type RawHookArtifactConfigs } from '@hyperlane-xyz/provider-sdk/hook';
import type { SvmSigner } from '../clients/signer.js';
import type { SvmDeployedHook, SvmDeployedIgpHook, SvmRpc } from '../types.js';
export type HookAccountDecoder = 'igpProgramData' | 'igp' | 'overheadIgp';
export declare class SvmHookArtifactManager implements IRawHookArtifactManager {
    private readonly rpc;
    private readonly mailboxAddress?;
    private readonly salt;
    constructor(rpc: SvmRpc, mailboxAddress?: Address | undefined, salt?: Uint8Array);
    readHook(address: string): Promise<DeployedHookArtifact>;
    createReader<T extends keyof RawHookArtifactConfigs>(type: T): ArtifactReader<RawHookArtifactConfigs[T], SvmDeployedHook | SvmDeployedIgpHook>;
    createWriter<T extends keyof RawHookArtifactConfigs>(type: T, signer: SvmSigner): ArtifactWriter<RawHookArtifactConfigs[T], SvmDeployedHook | SvmDeployedIgpHook>;
    private altVmToTypeKey;
}
//# sourceMappingURL=hook-artifact-manager.d.ts.map