import { PublicKey } from '@solana/web3.js';
import { Address, Domain } from '@hyperlane-xyz/utils';
import { BaseSealevelAdapter } from '../../app/MultiProtocolApp.js';
import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider.js';
import { ChainName } from '../../types.js';
import { IGasRouterAdapter, IRouterAdapter } from './types.js';
export declare class SealevelRouterAdapter extends BaseSealevelAdapter implements IRouterAdapter {
    readonly chainName: ChainName;
    readonly multiProvider: MultiProtocolProvider<any>;
    readonly addresses: {
        router: Address;
    };
    constructor(chainName: ChainName, multiProvider: MultiProtocolProvider<any>, addresses: {
        router: Address;
    });
    interchainSecurityModule(): Promise<Address>;
    owner(): Promise<Address>;
    remoteDomains(): Promise<Domain[]>;
    remoteRouter(remoteDomain: Domain): Promise<Address>;
    remoteRouters(): Promise<Array<{
        domain: Domain;
        address: Address;
    }>>;
    getRouterAccountInfo(): Promise<{
        owner_pub_key?: PublicKey;
        interchain_security_module?: Uint8Array;
        interchain_security_module_pubkey?: PublicKey;
        remote_router_pubkeys: Map<Domain, PublicKey>;
    }>;
    deriveMessageRecipientPda(routerAddress: Address | PublicKey): PublicKey;
}
export declare class SealevelGasRouterAdapter extends SealevelRouterAdapter implements IGasRouterAdapter {
    quoteGasPayment(_destination: ChainName): Promise<string>;
}
//# sourceMappingURL=SealevelRouterAdapter.d.ts.map