import { CrossChainMessageContext, ImmutableCrossChainMessageContext } from '../types';
import { BaseInteroperabilityCCCommand } from '../base_interoperability_cc_commands';
import { BaseInteroperabilityInternalMethod } from '../base_interoperability_internal_methods';
export declare abstract class BaseCCRegistrationCommand<T extends BaseInteroperabilityInternalMethod> extends BaseInteroperabilityCCCommand<T> {
    schema: {
        $id: string;
        type: string;
        required: string[];
        properties: {
            name: {
                dataType: string;
                minLength: number;
                maxLength: number;
                fieldNumber: number;
            };
            chainID: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            messageFeeTokenID: {
                dataType: string;
                minLength: number;
                maxLength: number;
                fieldNumber: number;
            };
            minReturnFeePerByte: {
                dataType: string;
                fieldNumber: number;
            };
        };
    };
    get name(): string;
    verify(ctx: ImmutableCrossChainMessageContext): Promise<void>;
    execute(ctx: CrossChainMessageContext): Promise<void>;
}
