import { type Address, type Rpc, type SolanaRpcApi } from '@solana/kit';
import { HookType } from '@hyperlane-xyz/provider-sdk/altvm';
import { decodeIgpAccount, decodeIgpProgramDataAccount, decodeOverheadIgpAccount, type IgpAccountData, type IgpProgramData, type OverheadIgpAccountData } from '../accounts/token.js';
export declare const decodeHookAccount: {
    igpProgramData: typeof decodeIgpProgramDataAccount;
    igp: typeof decodeIgpAccount;
    overheadIgp: typeof decodeOverheadIgpAccount;
};
export declare function fetchIgpProgramData(rpc: Rpc<SolanaRpcApi>, programId: Address): Promise<IgpProgramData | null>;
export declare function fetchIgpAccount(rpc: Rpc<SolanaRpcApi>, programId: Address, salt: Uint8Array): Promise<IgpAccountData | null>;
export declare function fetchOverheadIgpAccount(rpc: Rpc<SolanaRpcApi>, programId: Address, salt: Uint8Array): Promise<OverheadIgpAccountData | null>;
export declare function detectHookType(rpc: Rpc<SolanaRpcApi>, address: Address): Promise<HookType | null>;
export declare function remoteGasDataToConfig(gasOracle: {
    kind: 0;
    value: {
        tokenExchangeRate: bigint;
        gasPrice: bigint;
        tokenDecimals: number;
    };
}): {
    gasPrice: string;
    tokenExchangeRate: string;
    tokenDecimals: number;
};
//# sourceMappingURL=hook-query.d.ts.map