import { BaseEndpoint } from '../base_endpoint';
import { BaseCCMethod } from './base_cc_method';
import { ChainAccountJSON, ChainValidatorsJSON, ChannelDataJSON, OwnChainAccountJSON } from './types';
import { ModuleEndpointContext } from '../../types';
import { NamedRegistry } from '../named_registry';
import { TerminatedStateAccountJSON } from './stores/terminated_state';
import { TerminatedOutboxAccountJSON } from './stores/terminated_outbox';
export declare abstract class BaseInteroperabilityEndpoint extends BaseEndpoint {
    protected stores: NamedRegistry;
    protected offchainStores: NamedRegistry;
    protected readonly interoperableCCMethods: Map<string, BaseCCMethod>;
    constructor(stores: NamedRegistry, offchainStores: NamedRegistry);
    getChainAccount(context: ModuleEndpointContext): Promise<ChainAccountJSON>;
    getAllChainAccounts(context: ModuleEndpointContext): Promise<{
        chains: ChainAccountJSON[];
    }>;
    getChannel(context: ModuleEndpointContext): Promise<ChannelDataJSON>;
    getOwnChainAccount(context: ModuleEndpointContext): Promise<OwnChainAccountJSON>;
    getTerminatedStateAccount(context: ModuleEndpointContext): Promise<TerminatedStateAccountJSON>;
    getTerminatedOutboxAccount(context: ModuleEndpointContext): Promise<TerminatedOutboxAccountJSON>;
    getChainValidators(context: ModuleEndpointContext): Promise<ChainValidatorsJSON>;
    getCCMSchema(_context: ModuleEndpointContext): Promise<{
        schema: Record<string, unknown>;
    }>;
    private _toBoxJSON;
}
