import { Schema } from '@liskhq/lisk-codec';
import { NamedRegistry } from '../named_registry';
import { CCCommandExecuteContext, ImmutableCrossChainMessageContext } from './types';
export declare abstract class BaseCCCommand<T = unknown> {
    protected stores: NamedRegistry;
    protected events: NamedRegistry;
    schema: Schema;
    get name(): string;
    constructor(stores: NamedRegistry, events: NamedRegistry);
    verify?(ctx: ImmutableCrossChainMessageContext): Promise<void>;
    abstract execute(ctx: CCCommandExecuteContext<T>): Promise<void>;
}
