import { type Address, type Rpc, type SolanaRpcApi } from '@solana/kit';
import { IsmType } from '@hyperlane-xyz/provider-sdk/altvm';
import { type AccessControlData, type DomainData, decodeMultisigIsmAccessControlAccount, decodeMultisigIsmDomainDataAccount } from '../accounts/multisig-ism-message-id.js';
import { decodeTestIsmStorageAccount, type TestIsmStorage } from '../accounts/test-ism.js';
import { decodeInterchainSecurityModuleInterfaceInstruction, decodeMultisigIsmInterfaceInstruction } from '../instructions/interfaces.js';
import { decodeMultisigIsmMessageIdProgramInstruction } from '../instructions/multisig-ism-message-id.js';
export declare const decodeIsmInstruction: {
    interchainSecurityModule: typeof decodeInterchainSecurityModuleInterfaceInstruction;
    multisigInterface: typeof decodeMultisigIsmInterfaceInstruction;
    multisigProgram: typeof decodeMultisigIsmMessageIdProgramInstruction;
};
export declare const decodeIsmAccount: {
    multisigAccessControl: typeof decodeMultisigIsmAccessControlAccount;
    multisigDomainData: typeof decodeMultisigIsmDomainDataAccount;
    testIsmStorage: typeof decodeTestIsmStorageAccount;
};
export declare function fetchTestIsmStorageAccount(rpc: Rpc<SolanaRpcApi>, programId: Address): Promise<TestIsmStorage | null>;
export declare function fetchMultisigIsmAccessControl(rpc: Rpc<SolanaRpcApi>, programId: Address): Promise<AccessControlData | null>;
export declare function fetchMultisigIsmDomainData(rpc: Rpc<SolanaRpcApi>, programId: Address, domain: number): Promise<DomainData | null>;
export declare function detectIsmType(rpc: Rpc<SolanaRpcApi>, programId: Address): Promise<IsmType>;
export declare function validatorBytesToHex(validators: Uint8Array[]): string[];
//# sourceMappingURL=ism-query.d.ts.map