import { CommandExecuteContext, CommandVerifyContext, VerificationResult } from '../../../../state_machine';
import { MainchainRegistrationParams, ValidatorsMethod } from '../../types';
import { BaseInteroperabilityCommand } from '../../base_interoperability_command';
import { SidechainInteroperabilityInternalMethod } from '../internal_method';
export declare class RegisterMainchainCommand extends BaseInteroperabilityCommand<SidechainInteroperabilityInternalMethod> {
    schema: {
        $id: string;
        type: string;
        required: string[];
        properties: {
            ownChainID: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            ownName: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            mainchainValidators: {
                fieldNumber: number;
                maxItems: number;
                type: string;
                items: {
                    type: string;
                    required: string[];
                    properties: {
                        blsKey: {
                            dataType: string;
                            fieldNumber: number;
                            minLength: number;
                            maxLength: number;
                        };
                        bftWeight: {
                            dataType: string;
                            fieldNumber: number;
                        };
                    };
                };
                minItems: number;
            };
            mainchainCertificateThreshold: {
                dataType: string;
                fieldNumber: number;
            };
            signature: {
                dataType: string;
                fieldNumber: number;
                minLength: number;
                maxLength: number;
            };
            aggregationBits: {
                dataType: string;
                fieldNumber: number;
            };
        };
    };
    private _validatorsMethod;
    addDependencies(validatorsMethod: ValidatorsMethod): void;
    verify(context: CommandVerifyContext<MainchainRegistrationParams>): Promise<VerificationResult>;
    execute(context: CommandExecuteContext<MainchainRegistrationParams>): Promise<void>;
}
